angular - IIS7 上的 Angular 7 应用程序中的 500(URL 重写模块错误。)
问题描述
我有一个在 IIS 7 上托管的 Angular 7 应用程序,应该可以通过https://example.com/fitcbooks/web访问它。这工作,然后突然停止 - 因为我似乎无法理解的原因。服务器上的 URL 重写似乎正在工作(用于重定向同一服务器上的其他站点),但它只是针对这个特定的应用程序而崩溃。
我已经为 IIS7 安装了 URL 重写模块 2。我还使用 --base-ref 构建了 Angular 应用程序,并且已经使用了 web.config 代码,如下所示。我还构建了该应用程序的本地版本,它在我运行 AMPPS 的 macbook 上完美运行,消除了应用程序本身的任何问题。这看起来像一个服务器问题。
网络配置:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Angular Routes" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/fitcbooks/web/index.html" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
索引.html:
<base href="/fitcbooks/web/">
目前,该应用程序的预加载器只是永远加载。控制台显示几个 500 (URL Rewrite Module Error.) 错误。请帮助。
解决方案
终于解决了这个问题!
问题是在mac上压缩文件的自动加密。由于上周的 iOS 开发,我刚从 Windows 切换到 Mac,所以我是新手。
我能够通过使用IIS 中的失败请求跟踪规则阅读 500 HTTP 错误的详细信息来解决这个问题(感谢@LexLi 提供的 Fiddler 提示)。我观察了日志,发现具体的错误是500:50。也找到ErrorCode Access is denied. (0x80070005)
了,这让我意识到它与访问文件有关。经过一些在线挖掘,我找到了这个论坛帖子(https://forums.iis.net/t/1164360.aspx),安装了进程监视器并清楚地看到,服务器无法访问应用程序的文件。
应用程序中的文件夹带有绿色标签,所以我意识到它们是加密的。我在没有加密的情况下重新上传了文件,仅此而已 - 该应用程序正在运行!因此,我了解到在 Mac 上压缩的文件可能会给您在 Windows 上带来问题。
只是把它放在这里以防它帮助别人。
推荐阅读
- html - ReactStrap 分页元素超出可用宽度
- reactjs - 调用材质 ui 对话框
- python - 使用 Django 使用 AJAX 在 Bootstrap Modal 中动态加载内容
- javascript - vue.js 项目中没有任何渲染
- xamarin.forms - 在 xamarin 表单中,当从后台打开应用程序但应用程序状态在后台被操作系统杀死时,在 app.cs 中调用了哪个覆盖方法
- android - 找不到 com.android.tools.build:gradle:4.0.0
- c++ - 关于以非常规方式实现邻接矩阵的问题
- java - 自定义系统类未在命令行中编译
- mysql - SQL 数据库中的 ORDER BY 语句语法错误
- android-emulator - 在模拟器上测试三星智能电视的应用程序