下面是根据wrox的professional ASP 3.0建立的网站错误检查机制,使用了之后,你可以找到自己很多的错误,节省大量的代码测试时间,为什么不用呢!
首先建立表:
CREATE TABLE [dbo].[tSiteErrors] (
[kErrKey] [int] IDENTITY (1, 1) NOT NULL ,
[dDatetime] [datetime] NOT NULL ,
[ErrorType] [varchar] (255) NOT NULL ,
[TargetUrl] [varchar] (255) NULL ,
[ErrorInfo] [varchar] (255) NULL
) ON [PRIMARY]
GO
一、检查记录网站的错误链接:
在网站的目录中建立/siteerror/naverror.ASP
________________________________________________
无法找到网页
无法找到网页
您正在搜索的网页可能已经删除、更名或暂时不可用。
0) And (intSemiColon 254 Then strTarget = Left(strTarget, 254)
End If
If Len(strReferer) > 255 Then strReferer = Left(strReferer, 255)
strInform = "请通知包含该错误链接的网站管理员。"
strTyping = " 如果您在“地址”栏中键入了网页地址,请检查其拼写是否正确。或者:"
strRecord = "这个错误已经被记录,将尽快得到处理。"
Response.Write "
无法找到的网页地址为: " & strTarget & "
"
If Len(strReferer) > 0 Then 'came from a link on another page
Response.Write "下列网页中发现了链接错误: " & strReferer _
& " 。
"
Set oConn = Server.CreateObject("ADODB.Connection") 'to store the details
oConn.Open dsn
strsql="exec sp_errorrecorder 'broken link','" & strtarget & "','"&strReferer&"'"
oConn.Execute strSQL
Rem 注意这里
If Err.Number = 0 And InStr(strReferer, "你的域名 例如163.com") > 0 Then
Response.Write strRecord 'came from a page on our site
Else
Response.Write strInform 'came from a page on another site
End If
Else
Response.Write strTyping 'they just typed it wrong into their browser
End If
%>
打开主页,寻找指向所需信息的链接。
单击后退按钮尝试其他链接。
你的网站制作,意见和建议请联系你的邮件
二、检查记录网站的代码错误:
在网站的目录中建立/siteerror/ASPerror.ASP
服务器内部错误
"0" then
strinfo=strinfo & "Line " & strLinenum
if lngcolnum>0 then
strinfo=strinfo & ". column " & lngcolnum
if len(strsourcecode) then
strinfo=strinfo & " " & strSourcecode
end if
end if
end if
if len(strTarget) >255 then strtarget=left(strtarget,255)
if len(strinfo)>255 then strinfo = left(strinfo,255)
strinfo=replace(strinfo,"'","''")
set oconn=server.createobject("adodb.connection")
oconn.open dsn
strsql="insert into tsiteerrors(errortype,targeturl,errorinfo) values ('ASP error','" & strtarget & "','" & strinfo & "')"
strsql="exec sp_errorrecorder 'ASP error','" & strtarget & "','"&strinfo&"'"
oconn.execute strsql
oconn.close
set oconn=nothing
%>
服务器内部错误
您浏览的页面出现了服务器内部错误,暂时无法打开,这个问题已经被系统记录,我们将立即解决该问题。
单击后退按钮尝试其他链接。
你的网站制作,意见和建议请联系你的邮件
三、建立检查错误的页面:
/siteerror/manage_error.ASP
Web-Developer Site Administration
网站错误检查
管理网站的错误
<%
On Error Resume Next
'***********************************************
'-- open database connection
'***********************************************
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open dsn
'************************************************
'-- delete all items from table
'************************************************
If Len(Request.Form("DeleteAll")) Then
strSQL = "DELETE FROM tSiteErrors"
oConn.Execute(strSQL)
If Err.Number = 0 Then Response.Write "已经删除所有错误
"
End If
If Len(Request.Form("DeleteChecked")) Then
'************************************************
'-- delete ticked items from table
'************************************************
For Each chkBox In Request.Form
If Left(chkBox, 1) = "X" Then
strTargetURL = Mid(chkBox,2)
strSQL = "DELETE FROM tSiteErrors WHERE TargetURL='" & strTargetURL & "'"
oConn.Execute(strSQL)
If Err.Number = 0 Then Response.Write "Deleted errors for target: " & strTargetURL & "
"
End If
Next
'************************************************
End If
'************************************************
'-- display list of errors
'************************************************
%>
Click on a link to view the source or target page. Once the error has been fixed,
tick that entry and click the Delete Selected Errors button.

