2011-04-08 88 views
1
<customErrors mode="On" defaultRedirect="~/Error.aspx"> 
    <error statusCode="500" redirect="~/500/"/> 
    <error statusCode="404" redirect="~/404/"/> 
</customErrors> 

也能正常工作的请求,如:Web.config文件自定义错误不工作的404的

~/egerg.aspx 
~/wf92734eg.aspx 

但对于任何其他扩展,这给出了一个服务器的404页!我怎样才能让服务器404页面重定向到我的错误页面?

+0

你运行的是什么IIS版本? – 2011-04-08 00:41:57

+0

@Daniel IIS 7在Windows 7旗舰版上 – 2011-04-08 00:42:35

回答

1

该解决方案适用于我的网站,该网站99%的WebForms和1%剃刀/ MVC 4上的.NET Framework 4

  1. 在/Web.config:

    <system.web> 
        <customErrors mode="RemoteOnly" defaultRedirect="~/Error.aspx"> 
        <error statusCode="500" redirect="~/500/"/> 
        <error statusCode="404" redirect="~/404/"/> 
        </customErrors> 
    </system.web> 
    
  2. 在你的404处理器的Page_Load事件(/404/default.aspx.cs,我假设):

    protected void Page_Load(object sender, EventArgs e) 
    { 
        Response.StatusCode = 404; 
        Response.TrySkipIisCustomErrors = true; 
    } 
    
  3. 重复拉斯维加斯为500处理程序提供了一步。

  4. /Global.asax.cs中的Application_Error方法为空。

该解决方案与this one非常相似。