2011-04-08 91 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非常相似。