ASP.NET 2.0 - 如何使用app_offline.htm

时间:2009-07-20 13:04:07

标签: asp.net app-offline.htm

我已经阅读了app_offline.htm文件,该文件可放置在.NET 2.0应用程序的根目录中,该文件实际上将关闭应用程序并禁用所请求的任何其他页面。

我已将文件放在根目录中,我的网站仍然加载。我进入IIS中的默认文档并将其设置为app_offline.htm并且网站仍然加载(尽管这可能是一个缓存问题)

无论如何,有没有人遇到过这个问题?我做错了吗?

7 个答案:

答案 0 :(得分:143)

我使用非常方便的app_offline.htm技巧来过去关闭/更新网站而没有任何问题。

请确保您实际上将“app_offline.htm”文件放在IIS中已配置的网站的“根目录”中。

同时确保文件的名称完全符合原样:app_offline.htm

除此之外,您应该不需要对IIS进行其他更改,因为此文件(具有此特定名称)的处理由ASP.NET运行时而不是IIS本身处理(对于IIS v6)

但请注意,虽然将此文件放在网站的根目录中会强制应用程序“关闭”并显示“app_offline.htm”文件本身的内容,但现有的 >请求仍将获得提供给他们的真实网站。只有请求才能获得app_offline.htm内容。

如果您仍然遇到问题,请尝试以下链接以获取更多信息:

Scott Gu's App_Offline.htm

App_Offline.htm and working around the "IE Friendly Errors" feature

Will app_offline.htm stop current requests or just new requests?

答案 1 :(得分:45)

确保app_offline.htm文件的长度至少为512字节。零字节的app_offline.htm将无效。

更新:较新版本的ASP.NET / IIS可能比我第一次写这篇文章时表现得更好。

更新2:如果您使用的是ASP.NET MVC,请将以下内容添加到web.config中:

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

答案 2 :(得分:14)

请注意,这在IIS 6和7.x以及.NET 2,3和4.x上的行为相同。

另请注意,当存在app_offline.htm时,IIS将返回此http状态代码:

HTTP/1.1 503 Service Unavailable

这完全是设计的。这允许您的负载均衡器(或其他)看到服务器脱机。

答案 3 :(得分:10)

可能的许可问题

我知道这篇文章相当陈旧,但我遇到了类似的问题,我的文件拼写正确。

我最初在另一个位置创建了app_offline.htm文件,然后将其移动到我的应用程序的根目录。由于我的设置,我有一个权限问题。

该网站表现得好像不在那里。在根目录中创建文件而不是移动它,解决了我的问题。 (或者你可以在属性 - >安全性中修复权限)

希望它有所帮助。

答案 4 :(得分:2)

确保app_offline.htm位于IIS中虚拟目录或网站的根目录中。

答案 5 :(得分:1)

确保文件名扩展名在资源管理器中可见,文件名实际上是

app_offline.htm

不是

app_offline.htm.htm

答案 6 :(得分:0)

我遇到了一个与原始问题非常相似的问题,这个问题花了我一点时间来解决。

只是让其他人正在开发一个MVC应用程序并找到进入这个线程的方法,确保你有一个通配符映射到相应的.Net aspnet_isapi.dll定义。一旦我这样做,我的app_offline.htm开始按预期运行。


IIS 6配置步骤

在“IIS应用程序属性”上,选择“虚拟目录”选项卡。

在“应用程序设置”下,单击“配置”按钮。

在通配符应用程序映射下,单击“插入”按钮。

输入C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_isapi.dll,单击“确定”。