我已经阅读了app_offline.htm
文件,该文件可放置在.NET 2.0应用程序的根目录中,该文件实际上将关闭应用程序并禁用所请求的任何其他页面。
我已将文件放在根目录中,我的网站仍然加载。我进入IIS中的默认文档并将其设置为app_offline.htm
并且网站仍然加载(尽管这可能是一个缓存问题)
无论如何,有没有人遇到过这个问题?我做错了吗?
答案 0 :(得分:143)
我使用非常方便的app_offline.htm技巧来过去关闭/更新网站而没有任何问题。
请确保您实际上将“app_offline.htm”文件放在IIS中已配置的网站的“根目录”中。
同时确保文件的名称完全符合原样:app_offline.htm
除此之外,您应该不需要对IIS进行其他更改,因为此文件(具有此特定名称)的处理由ASP.NET运行时而不是IIS本身处理(对于IIS v6)
但请注意,虽然将此文件放在网站的根目录中会强制应用程序“关闭”并显示“app_offline.htm”文件本身的内容,但现有的 >请求仍将获得提供给他们的真实网站。只有新请求才能获得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应用程序属性”上,选择“虚拟目录”选项卡。
在“应用程序设置”下,单击“配置”按钮。
在通配符应用程序映射下,单击“插入”按钮。
输入C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_isapi.dll,单击“确定”。