最近经常有人问在win2000和IIS5中不显示asp错误的详细信息,而只显示错误号,如"错误ID800xxxxx",这使得程序调试很不方便,有些人采取在IIS中设置500-100错误指向默认,这样做也不会出现详细的错误信息。实际上这可能是微软出于安全考虑而在500-100.asp中没有显示详细出错信息。其实,你只要把500-100.asp稍加修改就可以了。下面是我修改的这个文件的内容。你只要把他copy下来存为500-100.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="' + urlresult + '">' + displayresult + "</a>"); } //--> </script>
<body bgcolor="FFFFFF">
<table width="410" cellpadding="3" cellspacing="5">
<tr> <td align="left" valign="middle" width="360"> <h1 style="COLOR:000000; FONT: 9pt 宋体"><!--Problem-->本页无法显示</h1> </td> </tr>
<tr> <td width="400" colspan="2"> <font style="COLOR:000000; FONT: 9pt 宋体">试图访问的网页出现问题,无法显示。</font></td> </tr>
<tr> <td width="400" colspan="2"> <font style="COLOR:000000; FONT: 9pt 宋体">
<hr color="#C0C0C0" noshade>
<p>请尝试以下方法:</p>
<ul> <li id="instructionsText1">单击 <a href="javascript:location.reload()"> 刷新</a>按钮或者梢候再试。<br> </li>
<li>打开
<script> <!-- if (!((window.navigator.userAgent.indexOf("MSIE") > 0) && (window.navigator.appVersion.charAt(0) == "2"))) { Homepage(); } //--> </script>
主页,然后查找与所需信息相关的链接。 </li> </ul>
<h2 style="FONT: 9pt 宋体; color:000000">HTTP 500.100 - 内部服务器错误 - ASP 错误<br> Internet 信息服务</h2>
<hr color="#C0C0C0" noshade>
<p>技术信息(适用于支持人员)</p>
<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>"
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 & " 列" '------------------------------------------------------------------- ' added by Bigeagle ' date:2000/5/10
dim l_strAspDescription l_strAspDescription = "错误原因:" + objASPError.Description() if l_strAspDescription <> "" then response.write("<p>" + l_strAspDescription+ "</p>") end if
l_strAspDescription = "详细描述:" + objASPError.ASPDescription() if l_strAspDescription <> "" then response.write("<p>" + l_strAspDescription+ "</p>") end if
'------------------------------------------------------------------- Response.Write "</b><br>" End If %> </li> <p> <li>浏览器类型:<br> <%= Request.ServerVariables("HTTP_USER_AGENT") %> </li> <p> <li>页:<br> <% strMethod = Request.ServerVariables("REQUEST_METHOD")
Response.Write strMethod & " "
If strMethod = "POST" Then Response.Write Request.TotalBytes & " bytes to " End If
Response.Write Request.ServerVariables("SCRIPT_NAME")
lngPos = InStr(Request.QueryString, "|")
If lngPos > 1 Then Response.Write "?" & Left(Request.QueryString, (lngPos - 1)) End If
Response.Write "</li>"
If strMethod = "POST" Then Response.Write "<p><li>POST 数据:<br>" If Request.TotalBytes > lngMaxFormBytes Then Response.Write Server.HTMLEncode(Left(Request.Form, lngMaxFormBytes)) & " . . ." Else Response.Write Server.HTMLEncode(Request.Form) End If Response.Write "</li>" End If
%> <p> <li>时间:<br> <% datNow = Now()
Response.Write Server.HTMLEncode(FormatDateTime(datNow, 1) & ", " & FormatDateTime(datNow, 3)) Session.Codepage = bakCodepage %> </li> </p> <p> <li>详细信息:<br> <%strQueryString = "prd=iis&sbp=&pver=5.0&ID=500;100&cat=" & Server.URLEncode(objASPError.Category) & _ "&os=&over=&hrd=&Opt1=" & Server.URLEncode(objASPError.ASPCode)& "&Opt2=" & Server.URLEncode(objASPError.Number) & _ "&Opt3=" & Server.URLEncode(objASPError.Description) strURL = "http://www.microsoft.com/ContentRedirect.asp?" & _ strQueryString %> <a href="<%= strURL %>">Microsoft 支持</a> </li> </p>
</font></td> </tr>
</body> </html>
|