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

bkkx9g8r  于 2023-10-21  发布在  .NET
关注(0)|答案(7)|浏览(128)

我读到过app_offline.htm文件,它可以放在.NET 2.0应用程序的根目录下,这实际上会关闭应用程序并禁止请求任何其他页面。
我把文件放在根目录下,我的网站仍然加载。我进入IIS中的默认文档并将其设置为app_offline.htm,网站仍然加载(尽管这可能是缓存问题)
不管怎样,有人在使用这个的时候遇到过问题吗?我做错什么了吗?

fgw7neuy

fgw7neuy1#

我曾经使用过非常方便的app_offline.htm技巧来关闭/更新网站,没有任何问题。
请确保您实际上是将“app_offline.htm”文件放置在您在IIS中配置的网站的“根”位置。
还要确保文件的名称与其应有的名称完全相同:app_offline.htm
除此之外,您应该不需要对IIS进行其他更改,因为此文件(具有此特定名称)的处理由ASP.NET运行时而不是IIS本身(对于IIS v6)处理。
但是请注意,尽管将此文件放置在网站的根目录下会强制应用程序“关闭”并显示“app_offline.htm”文件本身的内容,但任何 * 现有 * 请求仍会获得真实的网站。只有 new 请求才会获取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?

lnxxn5zx

lnxxn5zx2#

确保您的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>
flvlnr44

flvlnr443#

请注意,这在IIS 6和7.x以及.NET 2、3和4.x上的行为相同。
还请注意,当app_offline.htm存在时,IIS将返回以下http状态代码:

HTTP/1.1 503 Service Unavailable

这都是设计好的。这允许您的负载平衡器(或其他)看到服务器离线。

ryoqjall

ryoqjall4#

可能权限问题

我知道这篇文章是相当老,但我遇到了类似的问题,我的文件拼写正确。
我最初在另一个位置创建了app_offline. htm文件,然后将其移动到应用程序的根目录。由于我的设置,我有一个权限问题。
网站就像不存在一样。在根目录中创建文件而不是移动它,解决了我的问题。(或者你可以在属性->安全中修改权限)
希望它能帮助某人。

bvjveswy

bvjveswy5#

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

iqjalb3h

iqjalb3h6#

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

app_offline.htm.htm

wtzytmuj

wtzytmuj7#

我遇到了一个与最初的问题非常相似的问题,我花了一点时间才解决。
如果其他人正在处理MVC应用程序并找到了进入此线程的方法,请确保您定义了到适当的.Net aspnet_isapi. dll的Map。当我这样做的时候,我的app_offline.htm开始按预期运行。

IIS 6配置步骤

在IIS应用程序属性上,选择虚拟目录选项卡。
在“应用程序设置”下,单击“配置”按钮。
在“通配符应用程序Map”下,单击“插入”按钮。
输入C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll,单击确定。

相关问题