偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

概述ASP.NET錯(cuò)誤處理

開(kāi)發(fā) 后端
本文介紹ASP.NET錯(cuò)誤處理,以及介紹如果您的應(yīng)用程序試圖登錄數(shù)據(jù)庫(kù)時(shí)沒(méi)有成功,則顯示的錯(cuò)誤信息不應(yīng)該包括它正在使用的用戶名。

要?jiǎng)?chuàng)建頁(yè)中的全局處理程序,請(qǐng)創(chuàng)建 Page_Error 事件的處理程序。要?jiǎng)?chuàng)建ASP.NET應(yīng)用程序范圍的錯(cuò)誤處理程序,請(qǐng)?jiān)?Global.asax 文件中將代碼添加到 Application_Error 方法。只要您的頁(yè)或應(yīng)用程序中發(fā)生未處理的異常,就會(huì)調(diào)用這些方法。您可以從 HttpServerUtility.GetLastError 方法獲取有關(guān)最新錯(cuò)誤的信息。
注意   如果您具有全局錯(cuò)誤處理程序,則它優(yōu)先于在 Web.config customErrors 元素的 defaultRedirect 屬性中指定的ASP.NET錯(cuò)誤處理。

原則(MSDN):在您的應(yīng)用程序顯示錯(cuò)誤信息時(shí),它不應(yīng)該泄露有助于惡意用戶攻擊您系統(tǒng)的信息。例如,如果您的應(yīng)用程序試圖登錄數(shù)據(jù)庫(kù)時(shí)沒(méi)有成功,則顯示的錯(cuò)誤信息不應(yīng)該包括它正在使用的用戶名。

有許多方法可以控制錯(cuò)誤信息:

將應(yīng)用程序配置為不向遠(yuǎn)程(應(yīng)用程序)用戶顯示詳細(xì)錯(cuò)誤信息。您也可以選擇將錯(cuò)誤重定向到應(yīng)用程序頁(yè)。
只要可行就包括ASP.NET錯(cuò)誤處理,并編寫您自己的錯(cuò)誤信息。在您的錯(cuò)誤處理程序中,您可以進(jìn)行測(cè)試以確定用戶是否為本地用戶并作出相應(yīng)的響應(yīng)。
在捕捉所有未處理異常并將它們發(fā)送到一般錯(cuò)誤頁(yè)的頁(yè)級(jí)別或應(yīng)用程序級(jí)別上,創(chuàng)建全局錯(cuò)誤處理程序。這樣,即使您沒(méi)有預(yù)料到某個(gè)問(wèn)題,至少用戶不會(huì)看到異常頁(yè)。

一.頁(yè)面級(jí)的ASP.NET錯(cuò)誤處理

  1. voidPage_Error(Objectsender,EventArgse){  
  2. Stringmessage="<fontface=verdanacolor=red>" 
  3. +"<h4>"+Request.Url.ToString()+"</h4>"  
  4. +"<pre><fontcolorfontcolor='red'>"+Server.GetLastError().ToString()+"</pre>"  
  5. +"</font>";  
  6.  
  7. Response.Write(message);  
  8. Server.ClearError();  

注:通過(guò)使用 Server 對(duì)象訪問(wèn)來(lái)自服務(wù)器的錯(cuò)誤信息。特別地,該示例從 Request 對(duì)象獲取請(qǐng)求的 URL,以及 Server 對(duì)象的最新錯(cuò)誤(使用 GetLastError 方法),并將這兩者都轉(zhuǎn)換為客戶端可以顯示的字符串。將 message 變量寫入客戶端后,通過(guò)使用 ClearError 方法刪除該錯(cuò)誤

二.應(yīng)用程序級(jí)的錯(cuò)誤事件中

錯(cuò)誤處理方式如下:global.asax文件中的application_error中添加處理 邏輯,可添加其它操作,如寫入windows事件日志,發(fā)郵件給管理員,將錯(cuò)誤信息寫入數(shù)據(jù)庫(kù)。具體如下:

  1. protectedvoidApplication_Error(Objectsender,EventArgse)  
  2. {  
  3. StringMessage="\n\nURL:\nhttp://localhost/"+Request.Path  
  4. +"\n\nMESSAGE:\n"+Server.GetLastError().Message  
  5. +"\n\nSTACKTRACE:\n"+Server.GetLastError().StackTrace;  
  6. //寫入windows事件日志  
  7. StringLogName="Application";  
  8. if(!EventLog.SourceExists(LogName))  
  9. {  
  10. EventLog.CreateEventSource(LogName,LogName);  
  11. }  
  12. EventLogLog=newEventLog();  
  13. Log.Source=LogName;  
  14. Log.WriteEntry(Message,EventLogEntryType.Error);  

三.web.config中,自定義錯(cuò)誤信息。將應(yīng)用程序配置為不向遠(yuǎn)程用戶顯示錯(cuò)誤

  1. <customErrors mode="RemoteOnly" defaultRedirect="AppErrors.aspx">   
  2.    <error statusCode="404" redirect="NoSuchPage.aspx"/>   
  3.    <error statusCode="403" redirect="NoAccessAllowed.aspx"/>   
  4. </customErrors> 


注:將 mode 屬性設(shè)置為 RemoteOnly(區(qū)分大小寫)。這就將應(yīng)用程序配置為僅向本地用戶(您和開(kāi)發(fā)人員)顯示詳細(xì)的錯(cuò)誤。
(可選)包括指向應(yīng)用程序錯(cuò)誤頁(yè)的 defaultRedirect 屬性。
(可選)包括將錯(cuò)誤重定向到特定頁(yè)的 error 元素。例如,您可以將標(biāo)準(zhǔn) 404 錯(cuò)誤(未找到頁(yè))重定向到您自己的應(yīng)用程序頁(yè)。

四.包括ASP.NET錯(cuò)誤處理 (MSDN)

1.在可能產(chǎn)生錯(cuò)誤的任何語(yǔ)句前后使用 try-catch-finally 塊。

2.(可選)使用 Context 對(duì)象的 UserHostAddress 屬性對(duì)本地用戶進(jìn)行測(cè)試并相應(yīng)地修改錯(cuò)誤處理。值 127.0.0.1 等效于“l(fā)ocalhost”并指示瀏覽器與 Web 服務(wù)器位于同一臺(tái)計(jì)算機(jī)上。

下面顯示的是一個(gè)示例錯(cuò)誤處理塊。如果發(fā)生錯(cuò)誤,則用有關(guān)消息的詳細(xì)信息加載 Session 狀態(tài)變量,然后應(yīng)用程序顯示可以讀取 Session 變量并顯示錯(cuò)誤的頁(yè)。(有意寫入此錯(cuò)誤以便不向用戶提供任何可利用的詳細(xì)信息。)如果用戶是本地用戶,則提供不同的錯(cuò)誤詳細(xì)信息。在 finally 塊中,釋放開(kāi)放式資源。

  1. try  
  2. {  
  3. sqlConnection1.Open();  
  4. sqlDataAdapter1.Fill(dsCustomers1);  
  5. }  
  6. catch (Exception ex)  
  7. {  
  8. if(HttpContext.Current.Request.UserHostAddress == "127.0.0.1")  
  9. { Session["CurrentError"] = ex.Message; }  
  10. else  
  11. { Session["CurrentError"] = "Error processing page."; }  
  12. Server.Transfer("ApplicationError.aspx");  
  13. }  
  14. finally   
  15. {  
  16. this.sqlConnection1.Close();  

【編輯推薦】

  1. ASP.NET開(kāi)發(fā)技巧之Theme功能淺析
  2. 詳解ASP.NET動(dòng)態(tài)編譯
  3. Apache支持ASP.NET方法淺析
  4. 淺談ASP.NET服務(wù)器標(biāo)準(zhǔn)控件
  5. ASP.NET中SQL Server數(shù)據(jù)庫(kù)備份恢復(fù)淺析
責(zé)任編輯:佚名 來(lái)源: 博客園
相關(guān)推薦

2009-06-19 16:20:14

ASP.NET錯(cuò)誤處理

2009-07-31 11:28:42

錯(cuò)誤處理機(jī)制ASP.NET

2009-07-31 14:49:22

asp.net自定義錯(cuò)

2009-07-22 17:45:35

ASP.NET教程

2009-07-28 17:17:19

ASP.NET概述

2024-09-24 17:34:05

2009-07-22 16:17:39

ASP.NET AJA

2009-07-23 16:55:55

ASP.NET特點(diǎn)

2009-08-05 13:58:26

ASP.NET Mem

2009-07-27 15:52:21

ASP.NET特點(diǎn)ASP.NET概述

2009-07-29 13:04:59

2009-07-22 15:58:52

ASP.NET AJA

2009-08-04 16:46:58

ASP.NET內(nèi)置Ht

2009-08-04 15:22:33

ASP.NET緩存機(jī)制

2009-07-23 10:52:38

2009-07-20 10:16:13

配置ASP.NET A

2009-07-22 10:09:59

ASP.NET MVC

2009-07-30 15:17:16

ASP.NET 2.0

2009-07-28 11:09:02

ASP.NET狀態(tài)類型

2009-08-05 17:54:04

ASP.NET運(yùn)行模式
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)