Asp.net Http错误503的自定义错误页

Asp.net Http错误503的自定义错误页,asp.net,iis-7,http-status-code-503,Asp.net,Iis 7,Http Status Code 503,我需要为我的asp.net网站产生的503个错误发送一个自定义错误页面。我试图通过关闭应用程序池(不工作)和用请求淹没我的应用程序来模拟这种情况。即使IIS向我发送默认的503错误页,即使我尝试在IIS和ASP.NET中为此错误代码设置自定义URL,它仍然会返回默认的503错误页 如果有人能告诉我IIS发送的默认503错误页保存在哪里,我将不胜感激。请查看HttpContext.Current.Response.TrySkipIisCustomErrors。只是一个建议。据我所知,错误页面保存在

我需要为我的asp.net网站产生的503个错误发送一个自定义错误页面。我试图通过关闭应用程序池(不工作)和用请求淹没我的应用程序来模拟这种情况。即使IIS向我发送默认的503错误页,即使我尝试在IIS和ASP.NET中为此错误代码设置自定义URL,它仍然会返回默认的503错误页


如果有人能告诉我IIS发送的默认503错误页保存在哪里,我将不胜感激。

请查看
HttpContext.Current.Response.TrySkipIisCustomErrors
。只是一个建议。

据我所知,错误页面保存在%SystemDrive%\inetpub\custerr\\\.htm下

您可以在iis7 mmc中为每个网站配置自定义错误页面


编辑


在503的情况下,显然没有办法超越http.sys,唯一的选择是发送默认的http 503错误消息或终止tcp级别的连接。

遇到了同样的问题,但我刚刚在.NET应用程序中使用了一个经典的ASP保留页,成功地解决了这个问题(我不确定它是否也适用于apsx):

  • 确保在IIS中启用了经典ASP。值得一读:

  • 创建一个名为Offline.ASP的经典ASP文件,并将其放置在网站的根目录中,包含以下内容:

    <%
    
    Response.Status = "503 Service Unavailable"
    Response.CacheControl = "no-cache"
    Response.AddHeader "Pragma", "no-cache"
    Response.Expires = -1
    
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
            <meta name="robots" content="noindex,nofollow" />
            <title>Sorry, we're down for essential maintenance</title>
        </head>
        <body><h1>Sorry, we're down for essential maintenance</h1></body>
    </html>
    
    
    对不起,我们正在进行必要的维护
    对不起,我们正在进行必要的维护
    
  • 现在,在IIS7 Manager的错误页面管理部分,添加一个自定义错误页面,如下所示:

  • 现在,每当IIS收到503时,它都会将Offline.asp的内容以及503代码发送到浏览器(这非常重要,这样搜索引擎就不会列出您的错误页!)


    现在,如果您想使应用程序脱机,只需设置一个简单的重定向规则,将所有内容重定向到脱机。asp。

    您无法自定义默认的503服务不可用错误消息。这通常在应用程序池因某种原因不可用时返回

    这个关于何时发生的描述表明它直接来自http.sys,而internet上的所有内容似乎都一致认为它无法更改。我查看了http.sys注册表设置,但没有任何有用的内容


    是的,我也尝试过。但当应用程序池关闭时,这不会起作用。好吧,这就是我现在所能得到的。我不太想处理IIS7自定义错误。我今年已经修复了一次asp.net 10年的自定义403错误页面错误。祝你好运。我刚刚用一个aspx文件实现了同样的效果。我将服务器设置为在aspx文件中进行反编码以保持简单。当应用程序池停止时,这也不起作用。我不确定如果应用程序池过载,它是否会起作用,因为在您需要时很难重新创建这种情况。有人知道mvc应用程序的解决方案吗?如果您有意停止IIS,那么您可以让控制台应用程序提供服务web端口上的维护页如果停止应用程序池,您可以通过在应用程序的根目录中放置一个名为的文件来提供自定义错误503页。事实上,Microsoft说它无法自定义。真是太遗憾了。如果这是可自定义的,那就太好了。