【发布时间】:2011-10-11 14:22:20
【问题描述】:
我在本地使用 Asp.net 4 C# 和 IIS 7,在生产服务器上使用 IIS 7.5。
我需要显示自定义错误页面。目前,我在 Global.asax 中使用了一些逻辑来绕过 IIS 默认页面。
在本地使用 IIS 7 我能够成功显示 CustomPages 但在生产 (IIS 7.5) 服务器默认 IIS 页面仍然存在。
我使用Response.TrySkipIisCustomErrors = true;,但在生产服务器上不起作用。
你能告诉我解决这个问题的方法吗?
我的代码在Global.Asax
Application_Error
Response.TrySkipIisCustomErrors = true;
if (ex is HttpException)
{
if (((HttpException)(ex)).GetHttpCode() == 404)
{
Server.Transfer("~/ErrorPages/404.aspx");
}
}
// Code that runs when an unhandled error occurs.
Server.Transfer("~/ErrorPages/Error.aspx");
【问题讨论】:
-
只是出于好奇,您为什么不让您的 web.config 处理自定义错误?如有必要,登录 application_error 并让配置处理下一个。更容易打开/关闭、配置等。
-
亚当我做服务器传输以获得 404. Asp.net 自定义错误显示时默认显示 302 重定向
-
她确实有,但为什么这对你来说是个问题呢?为谷歌返回一个真正的 404 状态?如果它针对最终客户,请注意,如果您的内容小于 500 字节左右,则 IE(7?)会显示内置的“友好”错误。奇怪的行为,所以只想检查一下这背后的原因。