默认的IIS 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="' + escape(urlresult) + '">' + displayresult + "</a>"); } //--> </script>
<body bgcolor="FFFFFF">
<table width="100%" 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="100%" colspan="2"> <font style="COLOR:000000; FONT: 9pt 宋体">试图访问的网页出现问题,无法显示。</font></td> </tr> <tr> <td width="100%" 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 & " 行") & "<br>" '读去错误行文本 Dim AppPath,FileName,ErrLine,ErrCode,fs,f,i AppPath=Request.ServerVariables("APPL_PHYSICAL_PATH") FileName=Request.ServerVariables("SCRIPT_NAME") FileName=Replace(FileName,"/","\") FileName=Mid(FileName,2,Len(FileName)-1) 'Response.Write AppPath & FileName & "<br>" '常量定义 Const ForReading = 1,TristateFalse = 0 Set fs=Server.CreateObject("Scripting.FileSystemObject") Set f = fs.OpenTextFile(AppPath & FileName,ForReading,TristateFalse) ErrLine=objASPError.Line For i = 1 to ErrLine-1 f.SkipLine Next ErrCode=f.ReadLine f.close Response.Write "<b>该代码出现错误,请检查→</b><font color='#FF0000'>" & ErrCode & "</font><br>" set fs=nothing End if If objASPError.Column > 0 Then Response.Write ", 第 " & objASPError.Column & " 列" 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") & "<br>"
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>
请保存成500-100.asp文件,并放置到winnt/iishelp/help/common目录下
Win2000 Server IIS5.0调试通过
|