IIS7上的Angular 7应用中的500(URL重写模块错误)

时间:2019-06-21 15:26:36

标签: angular windows macos iis url-rewriting

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

我已经为IIS7安装了URL REWRITE MODULE 2。我还使用--base-ref构建了角度应用程序,并且已经使用了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重写模块错误)错误。请帮忙。

1 个答案:

答案 0 :(得分:0)

最终解决了这个问题!

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

我能够使用IIS中的失败的请求跟踪规则来读取500 HTTP错误的详细信息(感谢@LexLi的Fiddler技巧),从而弄清楚了这一点。我观察了日志,发现特定的错误是 500:50 。还发现了ErrorCode Access is denied. (0x80070005),这使我意识到它与对文件的访问有关。经过一些在线挖掘之后,我发现了该论坛帖子(https://forums.iis.net/t/1164360.aspx),安装了 Process Monitor ,并清楚地看到服务器无法访问该应用程序的文件。

应用程序中的文件夹带有绿色标签,因此我意识到它们已被加密。我没有加密就重新上传了文件,仅此而已-该应用正在运行!因此,我了解了在Mac上压缩文件可能会在Windows上给您带来麻烦的困难方式。

只要把它放在这里,以防别人帮忙。

相关问题