我读过关于 app_offline.htm
可放在.NET 2.0应用程序根目录中文件的信息,文件实际上将关闭该应用程序并禁止其他任何页面被请求。
我已将文件放置在根目录中,但我的网站仍在加载。我进入IIS中的默认文档并将其设置为app_offline.htm
,站点仍然加载(尽管这可能是缓存问题)
无论如何,有人使用它遇到问题吗?难道我做错了什么?
我读过关于 app_offline.htm
可放在.NET 2.0应用程序根目录中文件的信息,文件实际上将关闭该应用程序并禁止其他任何页面被请求。
我已将文件放置在根目录中,但我的网站仍在加载。我进入IIS中的默认文档并将其设置为app_offline.htm
,站点仍然加载(尽管这可能是缓存问题)
无论如何,有人使用它遇到问题吗?难道我做错了什么?
Answers:
我过去使用过非常方便的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文件至少为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>
请注意,这在IIS 6和7.x以及.NET 2、3和4.x上的行为相同。
还要注意,当存在app_offline.htm时,IIS将返回以下http状态代码:
HTTP/1.1 503 Service Unavailable
这都是设计使然。这使您的负载均衡器(或其他负载)可以看到服务器处于脱机状态。
app_offline.htm
在维护窗口中向用户显示吗?
我遇到了一个与原始问题非常相似的问题,该问题花了我一段时间才能解决。
以防万一其他人正在MVC应用程序上工作并找到进入该线程的方式,请确保您已将通配符映射到定义的相应.Net aspnet_isapi.dll。一旦这样做,我的app_offline.htm就开始表现出预期。
在“ IIS应用程序属性”上,选择“虚拟目录”选项卡。
在“应用程序设置”下,单击“配置”按钮。
在“通配符应用程序映射”下,单击“插入”按钮。
输入C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_isapi.dll,然后单击“确定”。