2014-01-10 71 views
1

在我的MVC應用程序中,我啓用了web.config中的自定義錯誤。我希望所有錯誤都能重定向到一個頁面。自定義錯誤適用於錯誤,但在404上失敗

<customErrors mode="On" redirectMode="ResponseRewrite" /> 

這重定向到~/Views/Shared/Error.cshtml頁面就好了,當我做

throw new Exception(); 

但是,當我衝浪site/Home/Bla它重定向我的IIS一般的404錯誤頁面,而不是我的自定義一個。

我試圖

private void Application_Error(object sender, EventArgs e) 
{ 
    Response.TrySkipIisCustomErrors = true; 
} 

添加到Global.asax,但無濟於事。

有誰知道可能是什麼問題? (如果您需要了解更多信息,然後AKS就必領受。)

+0

以下是使用通用錯誤控制器的方法:http://stackoverflow.com/questions/13905164/how-to-make-custom-error-pages-work-in-asp-net-mvc-4?rq= 1 –

回答

1

我已經找到了問題。感謝Jason給我指出了正確的方向。 :)感謝他,我找到了正確的道路。在StackOverflow page

發現

答案顯然我指着一個控制器和一個動作,如果在customErrors節點上指定redirectMode="ResponseRewrite",然後重定向使用舊版庫獲取內容。這應該是一個頁面,不能是一個mvc路線。

因此,要麼指定實際頁面,要麼使用redirectMode="ResponseRedirect"選項。該頁面需要是.htm或.html頁面,.cshtml也不被接受。

+0

+1:感謝您發佈您的解決方案。我希望更多的人會這樣做。 –

+1

我知道,我也是。這就是爲什麼我確保當我發佈問題時,我會檢查回來,直到我得到答案並更新它。而且我不害怕在應有的地方給出信用。 :) –

1

嘗試添加該到你的web.config

<customErrors mode="On" /> 

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
    <!-- Avoid IIS messing with custom errors http://stackoverflow.com/a/2345742/426840 --> 
    <httpErrors existingResponse="PassThrough" /> 

    </system.webServer>