网络编程
位置:首页>> 网络编程>> Asp编程>> 自定义asp错误信息的显示

自定义asp错误信息的显示

作者:editer  发布时间:2007-09-13 12:33:00 

标签:错误,自定义

 asp程序出错后,错误提示不是很清楚明白,让人摸不着头脑,用下面方法看看有没有帮助(此法目前只适合除ADO错误外的错误)
  步骤一,用编辑器打开c:winnt\helpiis\Helpcommon\500-100.asp
  将它另存为500-101.asp备份(以便日后恢复)
  步骤二,将下面的代码覆盖500-100.asp原文件,保存退出
  步骤三,创建新文件test.asp,添加如下代码
  <% response.write now(1)%>,存盘退出
  步骤四,在浏览器中输入localhost/test.asp查看结果
  
  500-100.asp的新代码:

 

<%@ language="VBScript" %> 
  <% 
   Option Explicit 
   
   Const lngMaxFormBytes = 200 
   
   Dim objASPError, blnErrorWritten, strServername, strServerIP, strRemoteIP 
   Dim strMethod, lngPos, datNow, strQueryString, strURL 
   
   If Response.Buffer Then 
   Response.Clear 
   Response.Status = "500 Internal Server Error" 
   Response.ContentType = "text/html" 
   Response.Expires = 0 
   End If 
   
   Set objASPError = Server.GetLastError 
  %> 
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> 
   
  <html dir=ltr> 
   
  <head> 
  <style> 
  a:link {font:9pt 宋体; color:FF0000} 
  a:visited {font:9pt 宋体; color:#4e4e4e} 
  </style> 
   
  <META NAME="ROBOTS" CONTENT="NOINDEX"> 
   
  <title>本页出错</title> 
   
  <META HTTP-EQUIV="Content-Type" Content="text-html; charset=gb2312"> 
  <META NAME="MS.LOCALE" CONTENT="ZH-CN"> 
  </head> 
   
  <script> 
  function Homepage(){ 
  <!-- 
  // in real bits, urls get returned to our script like this: 
  // res://shdocvw.dll/http_404.htm#http://www.DocURL.com/bar.htm 
   
   //For testing use DocURL = "res://shdocvw.dll/http_404.htm#https://www.microsoft.com/bar.htm" 
   DocURL=document.URL; 
   
   //this is where the http or https will be, as found by searching for :// but skipping the res:// 
   protocolIndex=DocURL.indexOf("://",4); 
   
   //this finds the ending slash for the domain server 
   serverIndex=DocURL.indexOf("/",protocolIndex + 3); 
   
   //for the href, we need a valid URL to the domain. We search for the # symbol to find the begining 
   //of the true URL, and add 1 to skip it - this is the BeginURL value. We use serverIndex as the end marker. 
   //urlresult=DocURL.substring(protocolIndex - 4,serverIndex); 
   BeginURL=DocURL.indexOf("#",1) + 1; 
   urlresult=DocURL.substring(BeginURL,serverIndex); 
   
   //for display, we need to skip after http://, and go to the next slash 
   displayresult=DocURL.substring(protocolIndex + 3 ,serverIndex); 
   document.write( ’<A HREF="’ + escape(urlresult) + ’">’ + displayresult + "</a>"); 
  } 
  //--> 
  </script> 
   
  <body bgcolor="FFFFFF"> 
   
  <ul> 
  <li>错误类型:<br> 
  <% 
   Dim bakCodepage 
   bakCodepage = Session.Codepage 
   Session.Codepage = 936 
   Response.Write Server.HTMLEncode(objASPError.Category) 
   If objASPError.ASPCode > "" Then Response.Write Server.HTMLEncode(", " & objASPError.ASPCode) 
   Response.Write Server.HTMLEncode(" (0x" & Hex(objASPError.Number) & ")" ) & "<br>" 
   
   If objASPError.ASPDescription > "" Then Response.Write Server.HTMLEncode(objASPError.ASPDescription) & "<br>" 
  %> 
  </li> 
  <p> 
  <li>错误位置:<br> 
  <% 
   blnErrorWritten = False 
   
   ’ Only show the Source if it is available and the request is from the same machine as IIS 
   If objASPError.Source > "" Then 
   strServername = LCase(Request.ServerVariables("SERVER_NAME")) 
   strServerIP = Request.ServerVariables("LOCAL_ADDR") 
   strRemoteIP = Request.ServerVariables("REMOTE_ADDR") 
   If (strServername = "localhost" Or strServerIP = strRemoteIP) And objASPError.File <> "?" Then 
   Response.Write Server.HTMLEncode(objASPError.File) 
   If objASPError.Line > 0 Then Response.Write ", 第 " & objASPError.Line & " 行" 
   If objASPError.Column > 0 Then Response.Write ", 第 " & objASPError.Column & " 列" 
   Response.Write "<br>" 
   Response.Write "<font style=""COLOR:000000; FONT: 9pt 宋体""><b>" 
   Response.Write Server.HTMLEncode(objASPError.Source) & "<br>" 
   If objASPError.Column > 0 Then Response.Write String((objASPError.Column - 1), "-") & "^<br>" 
   Response.Write "</b></font>" 
   blnErrorWritten = True 
   End If 
   End If 
   
   If Not blnErrorWritten And objASPError.File <> "?" Then 
   Response.Write "<b>" 
   Response.Write Server.HTMLEncode(objASPError.File) 
   If objASPError.Line > 0 Then Response.Write Server.HTMLEncode(", 第 " & objASPError.Line & " 行") 
   If objASPError.Column > 0 Then Response.Write ", 第 " & objASPError.Column & " 列" 
   Response.Write "</b><br>" 
   End If 
  %> 
  </li> 
  <p> 
  <li>错误描述:<br> 
  <% 
  response.write Server.HTMLEncode(objASPError.description) 
  %> 
  </li> 
  <p> 
   
  </body> 
  </html> 


0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com