我需要为我的asp.net网站发送的503错误发送自定义错误页面。我试图通过关闭应用程序池(不起作用)以及通过请求充满我的应用程序来模拟条件。即使IIS向我发送默认的503错误页面,即使我尝试在IIS和ASP.NET中为此错误代码设置自定义URL,它仍然会返回默认的503错误页面!
如果有人也能告诉我IIS发送的默认503错误页面在哪里,我会很感激。
答案 0 :(得分:12)
遇到同样的问题,但我刚刚设法在.NET应用程序中使用经典ASP保持页面为我们工作(我不确定它是否对apsx起作用):
确保在IIS中启用了Classic ASP。值得一读:http://blogs.iis.net/bills/archive/2007/05/21/tips-for-classic-asp-developers-on-iis7.aspx
创建一个名为 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管理器中转到错误页面管理部分,添加一个自定义错误页面,如下所示:
现在,当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级别的连接。