我已经阅读了有关app_offline.htm
可以放置在 .NET 2.0 应用程序根目录中的文件,该文件实质上将关闭应用程序并禁止请求任何其他页面。
我已将文件放在根目录中,并且我的网站仍在加载。我进入 IIS 中的默认文档并将其设置为app_offline.htm
并且站点仍然加载(尽管这可能是一个缓存问题)
无论如何,有没有人在使用这个时遇到问题?难道我做错了什么?
我已经阅读了有关app_offline.htm
可以放置在 .NET 2.0 应用程序根目录中的文件,该文件实质上将关闭应用程序并禁止请求任何其他页面。
我已将文件放在根目录中,并且我的网站仍在加载。我进入 IIS 中的默认文档并将其设置为app_offline.htm
并且站点仍然加载(尽管这可能是一个缓存问题)
无论如何,有没有人在使用这个时遇到问题?难道我做错了什么?
过去,我使用非常方便的 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 文件,然后将它移到了我的应用程序的根目录。由于我的设置,我遇到了权限问题。
该网站表现得好像它不存在一样。在根目录中创建文件而不是移动它,解决了我的问题。(或者你可以在属性->安全中修复权限)
希望它可以帮助某人。
确保它app_offline.htm
位于 IIS 中虚拟目录或网站的根目录中。
确保文件扩展名在资源管理器中可见并且文件名实际上是
app_offline.htm
不是
app_offline.htm.htm
我遇到了一个与原始问题非常相似的问题,我花了一点时间才解决。
万一其他人正在开发 MVC 应用程序并找到进入该线程的方法,请确保您有通配符映射到已定义的适当 .Net aspnet_isapi.dll。一旦我这样做了,我的 app_offline.htm 就开始按预期运行。
在 IIS 应用程序属性上,选择虚拟目录选项卡。
在应用程序设置下,单击配置按钮。
在通配符应用程序映射下,单击插入按钮。
输入C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll,点击确定。