2012-06-04 35 views
3

我希望所有錯誤都轉到相同的錯誤頁面。我最初嘗試使用狀態碼的錯誤標籤。這工作正常,但我寧願不必指定如此任何狀態碼,並仍然有每個錯誤到一個頁面。問題是,如果我刪除狀態碼條目,404會進入服務器的404頁面,而不是我的錯誤頁面。如何重定向所有錯誤,包括404

有沒有辦法配置所有的錯誤去同一頁?

回答

1

如果我明白,那你就得把所有的錯誤發送給您的自定義錯誤頁,和IIS7給出(不只是你的程序)

這是你需要在II7設置的東西,但這些錯誤你還可以設置它的web.config(但實際上給II7指令)下面是一個例子

<configuration> 
    <system.webServer> 
     <httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="File" > 
     <remove statusCode="500" /> 
     <error statusCode="500" 
      prefixLanguageFilePath="C:\Contoso\Content\errors" 
      path="500.htm" /> 
     </httpErrors> 
    </system.webServer> 
</configuration> 

參考:http://www.iis.net/ConfigReference/system.webServer/httpErrors

+0

你'仍然指定狀態碼。但是 - 是的,我嘗試過,但使用ExecuteURL而不是靜態文件。在404上,給出一個白頁說:「你正在尋找的資源已被刪除,名稱已更改或暫時不可用」。 – 4thSpace

+0

當我將500更改爲404並使用相關的ExecuteURL代碼時,這適用於我。 – 4thSpace

2

你應該改變你的web.config並添加customErrors元素。然後,您可以設置默認重定向到一個勁兒頁面

對於實例

<customErrors mode="On" defaultRedirect="Error.aspx"> 

</customErrors> 

你可以參考MSDN文章 http://msdn.microsoft.com/en-us/library/h0hfz6fc.aspx

在IIS7,您可以使用新的httpErrors部分

<system.webServer> 
    <httpErrors defaultPath="Error.aspx" defaultResponseMode="Redirect"> 
    </httpErrors> 
</system.webServer> 

欲瞭解更多信息 http://www.iis.net/ConfigReference/system.webServer/httpErrors

+0

我已經有了。它在vs.net中工作正常,但在通過IIS7訪問時無法正常工作。 – 4thSpace

+0

您是否嘗試過在system.webserver部分使用httpErrors? http://msdn.microsoft.com/en-us/library/ms690497(v=vs.90).aspx – workoholic

+0

欲瞭解更多信息http://www.iis.net/ConfigReference/system.webServer/httpErrors – workoholic