您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關如何進行ASP.NET項目開發中應用程序的異常處理,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
ASP.NET項目開發中應用程序異常處理都有哪些問題呢?讓我們開始我們的講解:
相信大家對Application對象不陌生,而且在項目中添加過Global.asax文件。確實,ASP.NET在應用程序級別處理異常的代碼都是放在Global.asax的Application_Error事件處理下的:
void Application_Error(object sender, EventArgs e) { // Code that runs when an unhandled error occurs }
我們可以在上面的事件處理的方法中捕獲所有的異常,而且還可以把異常記錄到日志文件,并且同時發送Email告訴開發人員出現了什么問題,如下
ASP.NET項目開發中應用程序異常處理Code
Exception error = Server.GetLastError().GetBaseException(); //在事件日志中記錄異常 if (!EventLog.SourceExists("ApplicationException")) { EventLog.CreateEventSource("ApplicationException", "Application"); } EventLog eventLog = new EventLog(); eventLog.Log = "Application"; eventLog.Source = "ApplicationException"; eventLog.WriteEntry(error.ToString(), EventLogEntryType.Error); //發送Email給開發人員 MailMessage email = new MailMessage("administrator@xiaoyang.com", "vince.varallo@PoweredByV2.com"); email.Body = error.ToString(); email.Subject = "An error occurred in the Application"; SmtpClient smtpClient = new SmtpClient("127.0.0.1", 25); smtpClient.Send(email); Response.Redirect("ErrorPage.aspx");
當然,上面的代碼要正確的運行,我們海必須在Global.asax中加入相應的命名空間,而且在發送郵件的時候,上面的"127.0.0.1"要換為我們自己的郵件服務器的地址:
<%@ Import Namespace="System.Diagnostics" %> <%@ Import Namespace="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項目開發中應用程序異常處理有所幫助。
上述就是小編為大家分享的如何進行ASP.NET項目開發中應用程序的異常處理了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。