无法访问站点错误 - 在 IIS 8.0 上托管 Angular 应用程序后

Site can't be reached error-After hosting Angular app on IIS 8.0

最近我在我们的测试服务器 (IIS 8.0) 上托管了一个 angular(版本 10)网络应用程序。并且还在 IIS 中安装了 URL Rewrite Module

下面是我为规则添加的 web.config。

<configuration>
<system.webServer>
  <rewrite>
    <rules>
      <rule name="Redirect all requests" 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="./index.html" />
        </rule>
    </rules>
  </rewrite>
  <directoryBrowse enabled="true" />
  <httpErrors errorMode="Custom">
      <remove statusCode="404"/>
      <error statusCode="404" path="/index.html" responseMode="ExecuteURL"/>
  </httpErrors>
</system.webServer>
<system.web>
    <customErrors mode="On" redirectMode="ResponseRewrite">
      <error statusCode="404" redirect="/index.html" />
    </customErrors>
    </system.web>
</configuration>

但是在托管应用程序后,该站点是 运行,但不断出现以下错误 无法访问站点,如下面的屏幕截图所示。出现错误后,URL 会在几秒钟内自动重新加载,然后网站会按预期运行。

以下是我的应用程序池设置。

这个错误的原因是什么?它也在没有空闲时间的情况下发生。我是否缺少任何 IIS 设置?或者需要添加任何其他 URL 书写规则?或者我的 angular 应用程序需要包含任何设置?请帮助我。

[更新]

借助调试工具发现错误在angular个配置文件中。

需要做两件事:
首先,您需要通过从 https://www.iis.net/downloads/microsoft/url-rewrite

下载来安装 url rewrite

然后您需要更改 web.config 文件以重定向到 index.html 文件以使用 angular 2 路由

这是您可以使用的 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="./index.html" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>

</configuration> 

没有其他要求。我的网站也以与上述相同的方式工作 我的网站也在 angular 10 Ivy

还有一件重要的事情是,将您的站点主文件夹权限授予所有人。由于无法访问权限站点,许多开发人员都会出现这种情况

经过一点点搜索和调试工具的帮助,终于能够修复错误。使用 ngsw-config.json

中的应用程序路径更改了索引 属性
"index": "YourAppPath/index.html"

这解决了问题。更多详情请阅读 angular 文档 here

有关错误的详细信息,请阅读此