22

我正在遵循 Scott gu 将 App_Offline.htm 页面放置在我的应用程序路径以使其脱机的技巧 - http://weblogs.asp.net/scottgu/archive/2006/04/09/442332.aspx

不过,它似乎不适用于我的一个网站。我将文件放在我的一个站点的 IIS7 中,所有流量都被重定向到它。

但是在另一个站点、同一台服务器等中,我得到一个包含“服务不可用”的页面。

不知道我哪里出错了 - 有什么想法吗?

4

6 回答 6

21

我设法通过将以下代码放入我的 web.config 来解决它:

<configuration>
    <system.webServer>
        <modules runAllManagedModulesForAllRequests="true" />

        <defaultDocument>
            <files>
                <clear />
                <add value="index.html" />
                <add value="app_offline.htm" />
            </files>
        </defaultDocument>

        <httpErrors errorMode="Custom" existingResponse="Replace">
            <clear />
            <error statusCode="503" path="App_Offline.htm" responseMode="File" />
        </httpErrors>
    </system.webServer>
</configuration>

通过汇总Scott Gunpiaseck@IIS 论坛Kurt Schindler的一些信息,找到了此修复程序。

于 2014-09-16T23:35:39.063 回答
12

这是我的解决方案 - 注意 503 ......

    <httpErrors existingResponse="Replace" errorMode="Custom">
  <remove statusCode="404" subStatusCode='-1' />
  <remove statusCode="400" subStatusCode='-1' />
  <remove statusCode="500" subStatusCode='-1' />
  <remove statusCode="503" subStatusCode='-1' />
  <error statusCode="404" path="404.html" prefixLanguageFilePath="" responseMode="File" />
  <error statusCode="400" path="404.html" prefixLanguageFilePath="" responseMode="File" />
  <error statusCode="500" path="500.html" prefixLanguageFilePath="" responseMode="File" />
  <error statusCode="503" path="app_offline.htm" responseMode="File" />

</httpErrors>
于 2015-08-25T21:19:02.200 回答
2

我最近在一个 MVC 站点上遇到了这个问题,当我想使用 app_offline.htm 文件时,我设法通过用一个干净、最小的 web.config 替换我最初拥有的 web.config 来解决它。

<?xml version="1.0"?>
<configuration>
    <system.webServer>
        <modules runAllManagedModulesForAllRequests="true" />
    </system.webServer>
</configuration>

如果我有更多时间,我会在 web.config 中找到改变行为的确切内容,但这值得一试。

于 2013-08-06T06:27:04.527 回答
2

我最近在向app_offline.htm我的一个网站添加页面时遇到了同样的问题。

这里的所有答案都建议将 503 响应设置为相同的app_offline.htm,我已经有一个不同的 503 页面,并且真的不想摆弄它。

另外,我想知道为什么会这样。

503AspNetInitializationExceptionModule 发送,我假设如果 asp.net 运行时检测到app_offline.htm网站根目录中的文件,它会发送一个

503 Service Unavailable

并且还会发送 的内容app_offline.htm作为响应。

但是,因为它是一个错误响应,所以 IIS 错误处理开始了:

<httpErrors existingResponse="Replace">

这里的Replace意思是,忽略 ASP.NET 发送给您的任何内容并使用您自己的 503 响应。app_offline.htm通过指定与其他答案中建议的相同页面( ),可以解决问题。

解决此问题的另一种方法是更改​​现有响应属性,例如:

<httpErrors existingResponse="Auto">

现在 IIS 接受来自 ASP.NET 的响应并显示app_offline.htm文件的内容。

Auto也意味着其他 ASP.NET 错误响应可能会通过。

于 2019-11-05T18:15:59.813 回答
1

这是使用 GUI 执行此操作的方法(注意最后一行 - 这是您应该添加/编辑的行)

在此处输入图像描述

于 2019-06-15T21:27:45.963 回答
0

您需要做的就是在使用 app_offline.htm 时将 web.config 重命名为 web.config.bak 之类的其他名称。

于 2020-10-05T19:59:35.097 回答