Http Error 503的自定义错误页面

时间:2010-02-16 09:51:12

标签: asp.net iis-7 http-status-code-503

我需要为我的asp.net网站发送的503错误发送自定义错误页面。我试图通过关闭应用程序池(不起作用)以及通过请求充满我的应用程序来模拟条件。即使IIS向我发送默认的503错误页面,即使我尝试在IIS和ASP.NET中为此错误代码设置自定义URL,它仍然会返回默认的503错误页面!

如果有人也能告诉我IIS发送的默认503错误页面在哪里,我会很感激。

4 个答案:

答案 0 :(得分:12)

遇到同样的问题,但我刚刚设法在.NET应用程序中使用经典ASP保持页面为我们工作(我不确定它是否对apsx起作用):

  1. 确保在IIS中启用了Classic ASP。值得一读:http://blogs.iis.net/bills/archive/2007/05/21/tips-for-classic-asp-developers-on-iis7.aspx

  2. 创建一个名为 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>
    
  3. 现在在IIS7管理器中转到错误页面管理部分,添加一个自定义错误页面,如下所示:

    Error Pages

    Add Custom Error Page

    Error Pages

  4. 现在,当IIS收到503时,它会将Offline.asp的内容发送到浏览器,以及503代码(重要),以便搜索引擎不会列出您的错误页面!)

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

答案 1 :(得分:9)

您无法自定义默认的503 Service Unavailable错误消息。当应用程序池由于某种原因不可用时,通常会返回此信息。

这种情况的描述表明它直接来自http.sys,互联网上的所有内容似乎都同意它无法更改。我查看了http.sys注册表设置,那里没什么用处。

http://technet.microsoft.com/en-us/library/cc781893(WS.10).aspx

答案 2 :(得分:3)

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

答案 3 :(得分:0)

据我所知,错误页面保存在%SystemDrive%\ inetpub \ custerr \&lt; LANGUAGE-TAG&gt; \&lt; HTTP-CODE&gt; .htm

<罢工>

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


修改

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