app_offline.htm会停止当前请求还是仅停止新请求?

Mik*_*tts 23 iis

就像标题所说的那样,如果我app_offline.htm在应用程序根目录中放置一个,它会切断当前运行的请求,还是只删除新的请求?

Gab*_*ner 30

这是我的蹩脚实验; 我用以下代码创建了一个ASPX页面:

protected void Page_Load(object sender, EventArgs e)
{
    Response.BufferOutput = false;
    Response.Write("Step 1<br />");
    System.Threading.Thread.Sleep(10000);
    Response.Write("Step 2<br />");
    System.Threading.Thread.Sleep(10000);
    Response.Write("Step 3<br />");
}
Run Code Online (Sandbox Code Playgroud)

此代码简单介绍了一些loooong页面加载.我访问了页面,在加载时,我创建了一个"app_offline.htm"文件.然后我加载了另一个Web浏览器并确认应用程序处于脱机状态 然后我重新访问了我的"加载"请求......它一直完成到第3步.

这确认当前请求完成加载并且新请求被拒绝.


Bri*_*Kim 5

来自 ScottGu 的博客:

基本上,如果您将具有此名称的文件放在 Web 应用程序目录的根目录中,ASP.NET 2.0 将关闭应用程序,从服务器卸载应用程序域,并停止处理该应用程序的任何新传入请求。然后 ASP.NET 还将通过发回 app_offline.htm 文件的内容来响应应用程序中对动态页面的所有请求(例如:您可能想要“站点正在建设中”或“停机维护”消息) .

App_Offline.htm - ScottGu 的博客

因此,它似乎会继续处理当前请求,但会停止新传入的请求。