我想要做的是趕上並沒有在Web應用程序中被處理的任何異常,然後向用戶發送到屏幕說像漁獲global.cs所有的異常處理程序
「是對不起這有墜毀「
並在同一時間發送異常到我們的票務系統。
我假設我需要把它放在global.cs的某個地方只是不知道在哪裏?
我想要做的是趕上並沒有在Web應用程序中被處理的任何異常,然後向用戶發送到屏幕說像漁獲global.cs所有的異常處理程序
「是對不起這有墜毀「
並在同一時間發送異常到我們的票務系統。
我假設我需要把它放在global.cs的某個地方只是不知道在哪裏?
您需要Global.cs的Application_Error
事件
protected void Application_Error(object sender, EventArgs e)
{
}
您可以在web.config配置自定義錯誤頁,如下所示:
<configuration>
<system.web>
<customErrors defaultRedirect="GenericError.htm"
mode="RemoteOnly">
</customErrors>
</system.web>
</configuration>
這也是明智的,記錄這些異常。有幾個populair日誌框架可以爲你做到這一點。其中兩個,ELMAH和CuttingEdge.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>
Application_Error
。但是,那些日誌記錄框架可能有很多功能可能需要考慮。
祝你好運。
嗨史蒂文,我已經在使用log4net,所以這可能是一個想法,看看我能否延長這一點。 – TheAlbear 2010-08-10 10:25:11
絕對。 log4net有一個很好的擴展機制,如果你已經熟悉log4net,我認爲沒有理由切換到另一個框架。但是,log4net不包含可以配置爲將異常重定向到日誌框架的「HttpModule」。但是,您可以使用global.asax'Application_Error'事件輕鬆完成此操作。 – Steven 2010-08-10 10:50:18