2010-07-19 53 views
5

我已經在Web配置文件中設置自定義錯誤如下:與模式=僅限遠程和Global.asax的異常處理ASP.NET的customErrors

<customErrors mode="RemoteOnly" defaultRedirect="GenericError.aspx" /> 

非常愉快......我喜歡那個模式=「僅限遠程「有利於發展...

對於未處理的異常,我在Global.asax中:

Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs) 
    Response.Redirect("GenericError.aspx") 
End Sub 

然而,未處理的異常是要在一般性的錯誤頁面,而不是翔實黃S開發人員喜歡死亡。我可以將global.asax中的重定向註釋掉,但是我需要記住將其更改爲生產環境。有沒有辦法在Application_Error中檢查我是否是遠程的,以確定是否重定向?

回答

3

Global.asax中不需要Response.Redirect。它重複了<customErrors>標記的行爲。 RemoteOnly會爲最終用戶提供自定義錯誤消息,並且本地使用標準的asp.net錯誤頁面。如果您的開發人員使用本地Web服務器進行開發,那麼您的開發人員可以同時使用。

另一種方法是在開發服務器上將<customErrors>設置爲Off,並在生產環境中將其設置爲On。 web.config中通常有很多項目需要更改,所以它不再是困難。

+0

你是對的,我必須有一個不理解的腦屁! – harrije 2010-07-19 16:57:55

0

如果在web.config中設置了defaultRedirect,則甚至不需要Application_Error中的行。