2012-02-15 50 views

回答

6

這取決於,但通常應該在Web.config文件中。

Web.Debug.config和Web.Release.config(以及其他配置變體)用於部署應用程序時。執行發佈操作時,轉換將在部署期間應用於您的Web.config文件,這意味着您可以將特定的配置設置應用於調試,發佈以及您設置的其他配置。

如果在開發過程中通常不執行發佈操作,則需要將此設置應用於Web.config文件才能生效。

有關轉換Web.config文件的更多詳細信息,請參閱http://msdn.microsoft.com/en-us/library/dd465318.aspx。對於將customErrors元素添加到Web.config文件的示例,請參閱http://msdn.microsoft.com/en-us/library/h0hfz6fc.aspx

+0

Scott Hanselman在第9頻道有關於部署以及如何有效使用web.config的調試和發佈版本的很棒的視頻。 http://channel9.msdn.com/Events/MIX/MIX10/FT14 – 2012-02-15 00:29:19

+0

我在關閉標籤之前,在web.config中定義,如下所示: - 但是如果發生錯誤,則會顯示完整的錯誤消息(不是自定義錯誤)。 – 2012-02-15 01:20:14

+2

元素放在標記下。您還需要指定defaultRedirect,或者指定爲控制器操作,或者最好指定一個靜態html文件。或者,許多人已將自定義錯誤關閉,然後在應用程序錯誤處理程序中處理路由。有關詳細信息,請參閱http://stackoverflow.com/questions/6733064/how-do-i-display-custom-error-pages-in-asp-net-mvc-3。 – devdigital 2012-02-15 09:31:17

69

根據我的經驗,我們應該在發佈模式下將自定義錯誤設置爲On,並在調試時將其關閉。要自動執行此操作,我們可以使用web.config轉換,如下例所示。

Web.Debug.config

此設置將使Web服務器,以顯示包含有用的錯誤信息ASP.NET黃頁。

<customErrors mode="Off" xdt:Transform="Replace" /> 

Web.Release.config

在另一方面,我們不希望用戶知道的技術錯誤。我們應該使用自定義錯誤頁面而不是ASP.NET黃頁。

<customErrors mode="On" xdt:Transform="Replace" /> 
+2

這應該早已被標記爲接受的答案... – 2015-11-20 15:58:29

+1

爲什麼不'RemoteOnly'?然後,您將不必使用XML轉換,開發人員可以在Web服務器上查看網站時看到錯誤。 – 2017-07-06 12:40:25

+0

有時從網絡服務器上查看網站只是不方便? (不是說你的觀點沒有價值..) – 2017-12-20 10:55:53

4

放入Web.config並創建一個錯誤頁面進行重定向。 在MVC中,你有HandleErrorAttribute,在類上標記它來處理意外錯誤,記錄它並拋出錯誤頁面。自定義錯誤是默認頁面,具有已知狀態碼的特定錯誤。

<system.web> 
    <customErrors mode="On"> 
     <error statusCode="404" redirect="/PageNotFound?" /> 
    </customErrors> 
</system.web> 
相關問題