2010-08-10 24 views
0

我想要做的是趕上並沒有在Web應用程序中被處理的任何異常,然後向用戶發送到屏幕說像漁獲global.cs所有的異常處理程序

「是對不起這有墜毀「

並在同一時間發送異常到我們的票務系統。

我假設我需要把它放在global.cs的某個地方只是不知道在哪裏?

回答

3

您需要Global.cs的Application_Error事件

protected void Application_Error(object sender, EventArgs e) 
{ 

} 
3

您可以在web.config配置自定義錯誤頁,如下所示:

<configuration> 
    <system.web> 
    <customErrors defaultRedirect="GenericError.htm" 
        mode="RemoteOnly"> 
    </customErrors> 
    </system.web> 
</configuration> 

這也是明智的,記錄這些異常。有幾個populair日誌框架可以爲你做到這一點。其中兩個,ELMAHCuttingEdge.Logging,具有標準的ASP.NET集成工具,它允許不寫任何一行代碼。使用CuttingEdge.Logging例如,你可以配置你的站點如下自動錯誤記錄到Windows事件日誌:

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
    <section name="logging" 
     type="CuttingEdge.Logging.LoggingSection, CuttingEdge.Logging" /> 
    </configSections> 
    <logging defaultProvider="WindowsEventLogger"> 
    <providers> 
     <add name="WindowsEventLogger" 
type="CuttingEdge.Logging.WindowsEventLogLoggingProvider, CuttingEdge.Logging" 
     source="MyWebApplication" 
     logName="MyWebApplication" /> 
    </providers> 
    </logging> 
    <system.web> 
    <httpModules> 
     <add name="ExceptionLogger" 
type="CuttingEdge.Logging.Web.AspNetExceptionLoggingModule, CuttingEdge.Logging"/> 
    </httpModules> 
    </system.web> 
</configuration> 


更新:對不起,閱讀題對我來說似乎很難。您想要將異常發送到您的售票系統。所有流行的日誌記錄系統都允許您擴展默認的功能,通常很容易,但是您當然需要爲此編寫代碼。正如Philip所建議的那樣,您當然也可以覆蓋 Application_Error。但是,那些日誌記錄框架可能有很多功能可能需要考慮。

祝你好運。

+0

嗨史蒂文,我已經在使用log4net,所以這可能是一個想法,看看我能否延長這一點。 – TheAlbear 2010-08-10 10:25:11

+0

絕對。 log4net有一個很好的擴展機制,如果你已經熟悉log4net,我認爲沒有理由切換到另一個框架。但是,log4net不包含可以配置爲將異常重定向到日誌框架的「HttpModule」。但是,您可以使用global.asax'Application_Error'事件輕鬆完成此操作。 – Steven 2010-08-10 10:50:18

相關問題