2011-07-21 36 views
0

我知道這已經被問了很多次,但是我無法從這些帖子中獲得工作。發佈之後Application_error事件不會觸發

我已經在Global.asax文件中實現了Application_error方法來記錄和發送所有未處理的異常的電子郵件。在Visual Studio上運行時,這種方式非常合適,但只要將它發佈到測試服務器,Application_event就會停止響應。文本文件沒有日誌條目,也沒有發送電子郵件。

PrecompiledApp.config文件與bin文件夾中的App_global.asax.compiled,App_global.asax.dll一起存在於根目錄中。在我發佈網站後Global.asax文件不存在。

我已經嘗試刪除PrecompiledApp.config文件,但它不起作用。 我已經嘗試將Global.asax文件添加到根目錄,但不起作用。 我與

<customErrors mode="Off" /> 
在web.config文件

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

嘗試....沒有什麼作品。

我添加了一行到頁面的Page_Load中:

Response.Write("<br/>ApplicationInstance: " + Context.ApplicationInstance.GetType().FullName); 

它返回ApplicationInstance:ASP.global_asax,應根據後返回。 那麼爲什麼事件沒有解僱?

請幫忙!!!

謝謝!

** [編輯] ....我在Global.asax文件的Session_start事件中添加了一行代碼,它工作正常。這意味着Global.asax已成功部署。但是爲什麼Application_error事件在錯誤的情況下沒有得到執行?有任何想法嗎?

+0

所有application_ *事件不火? –

+0

我剛剛實現了application_error事件。沒有在其他事件中放置任何代碼。 – KhD

回答

1

如果應用程序在Application_error方法中遇到,它不會拋出它,這使得它看起來像方法沒有被調用。

我會檢查以確保在application_error方法內有足夠的異常處理。

+0

這是我在Application_Error觸發時遇到的問題。 –

0

下面的代碼在發佈到IIS後工作正常。

小組的Application_Error(BYVAL發件人爲對象,BYVALË作爲EventArgs的)

If Context IsNot Nothing Then 
     Context.ClearError() 
     Response.Write("Application_Error" + "<br/><br/>") 
     Response.Write("Error on Default Page") 
    End If 
End Sub