ASP.NET專案開發中應用程式異常處理淺析

iDotNetSpace發表於2009-07-31

ASP.NET專案開發中應用程式異常處理都有哪些問題呢?讓我們開始我們的講解:

相信大家對Application物件不陌生,而且在專案中新增過Global.asax檔案。確實,ASP.NET在應用程式級別處理異常的程式碼都是放在Global.asax的Application_Error事件處理下的:

  1. void Application_Error(object sender, EventArgs e)  
  2.  {  
  3.   // Code that runs when an unhandled error occurs  
  4.  } 

我們可以在上面的事件處理的方法中捕獲所有的異常,而且還可以把異常記錄到日誌檔案,並且同時傳送Email告訴開發人員出現了什麼問題,如下

ASP.NET專案開發中應用程式異常處理Code

  1. Exception error = Server.GetLastError().GetBaseException();  
  2. //在事件日誌中記錄異常  
  3. if (!EventLog.SourceExists("ApplicationException"))  
  4. {  
  5.  EventLog.CreateEventSource("ApplicationException""Application");  
  6. }  
  7.  
  8. EventLog eventLog = new EventLog();  
  9. eventLog.Log = "Application";  
  10. eventLog.Source = "ApplicationException";  
  11. eventLog.WriteEntry(error.ToString(), EventLogEntryType.Error);  
  12.  
  13. //傳送Email給開發人員  
  14. MailMessage email = new MailMessage("administrator@xiaoyang.com",  
  15. "vince.varallo@PoweredByV2.com");  
  16. email.Body = error.ToString();  
  17. email.Subject = "An error occurred in the  Application";  
  18. SmtpClient smtpClient = new SmtpClient("127.0.0.1", 25);  
  19. smtpClient.Send(email);  
  20. Response.Redirect("ErrorPage.aspx"); 

當然,上面的程式碼要正確的執行,我們海必須在Global.asax中加入相應的名稱空間,而且在傳送郵件的時候,上面的"127.0.0.1"要換為我們自己的郵件伺服器的地址:

  1. "System.Diagnostics" %>  
  2. "System.Net.Mail" %> 

還有一點要注意的就是,ASP.NET執行時是以ASPNET賬戶執行的,這個賬戶的許可權是有限的,如果我們想要使得上面的程式碼可以執行,那麼就必須要給ASPNET賬戶訪問登錄檔的許可權。如果你不給許可權,那麼上面的程式碼就報錯。

我們賦予ASPNET賬戶訪問在"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog"節點以及位元組點的許可權。

ASP.NET專案開發中應用程式異常處理之如何配置許可權:

1.開啟"執行"選單

2.輸入"regedit",然後確定

3.導航到"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog"節點。

4.右擊這個節點,並且選擇"許可權",此時就會彈出許可權配置的視窗。

5.點選"新增",在彈出的視窗中點選"高階",之後再點選"查詢",最後在下面的視窗找到"ASPNET"賬戶,確定。

6.最後給予ASPNET賬戶讀的許可權就OK了。

上面的程式碼,如果我們不在最後加了Response.Redirect方法,出錯後,使用者看到的就是那個很經典的黃顏色的報錯的頁面。我們也知道,那個經典的報錯頁面會暴露很多的資訊,所以我們常常導航到我們自定義的錯誤頁面。

ASP.NET專案開發中應用程式異常處理的基本情況就向你介紹到這裡,希望對你理解ASP.NET專案開發中應用程式異常處理有所幫助。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-610961/,如需轉載,請註明出處,否則將追究法律責任。

相關文章