【问题标题】:500 (URL Rewrite Module Error.) in Angular 7 app on IIS7IIS7 上的 Angular 7 应用程序中的 500(URL 重写模块错误。)
【发布时间】:2019-11-04 11:25:27
【问题描述】:

我在 IIS 7 上托管了一个 Angular 7 应用程序,应该可以通过 https://example.com/fitcbooks/web 访问它。这工作,然后突然停止 - 因为我似乎无法理解的原因。服务器上的 URL 重写似乎正在工作(用于重定向同一服务器上的其他站点),但它只是针对这个特定的应用程序而崩溃。

我已经为 IIS7 安装了 URL 重写模块 2。我还使用 --base-ref 构建了 Angular 应用程序,并且已经使用了 web.config 代码,如下所示。我还构建了该应用程序的本地版本,它在我运行 AMPPS 的 macbook 上完美运行,消除了应用程序本身的任何问题。这看起来像是服务器问题。

web.config:

<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>

index.html:

<base href="/fitcbooks/web/">

目前,应用的预加载器只是永久加载。控制台显示几个 500 (URL Rewrite Module Error.) 错误。请帮忙。

【问题讨论】:

  • 使用 Fiddler 之类的工具来抓取完整的 500 错误页面,然后查看它的内容。
  • 感谢@LexLi 的提示。我安装了 Fiddler,但并没有真正开始阅读 HTTPS 500 详细信息。最终使用 IIS 的失败请求跟踪规则来设置日志,我后来检查了。您的评论帮助我指出了这个方向。

标签: angular windows macos iis url-rewriting


【解决方案1】:

终于解决了!

问题在于 Mac 上 zip 压缩文件的自动加密。我上周因为 iOS 开发刚从 Windows 切换到 Mac,所以我是新手。

我能够通过在 IIS 中使用 Failed Request Tracing Rules 阅读 500 HTTP 错误的详细信息来解决这个问题(感谢 @LexLi 提供的 Fiddler 提示)。我观察了日志,发现具体的错误是 500:50。还找到了ErrorCode Access is denied. (0x80070005),这让我意识到它与访问文件有关。经过一番在线挖掘,我找到了这个论坛帖子(https://forums.iis.net/t/1164360.aspx),安装了 Process Monitor 并清楚地看到,服务器无法访问应用程序的文件。

应用程序中的文件夹带有绿色标签,所以我意识到它们是加密的。我在没有加密的情况下重新上传了文件,仅此而已 - 该应用程序正在运行!因此,我了解到在 Mac 上压缩的文件可能会给您在 Windows 上带来问题。

把它放在这里以防它帮助别人。

【讨论】:

  • 你也会爱上 Wireshark。
猜你喜欢
  • 2015-11-27
  • 2010-12-18
  • 2018-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-18
  • 2010-11-06
  • 2013-04-23
相关资源
最近更新 更多