Microsoft JET Database Engine 错误 '80004005' 未指定的错误 /conn/connindex.asp,行 18
<%Server.ScriptTimeOut=20000'设置脚本超时时间Response.Buffer=True'设置buffer为True'OnErrorResume...
<%
Server.ScriptTimeOut = 20000 '设置脚本超时时间
Response.Buffer = True '设置buffer为True
' On Error Resume Next'开始错误处理
' If Err.Number <> 0 Then '错误处理
' Response.Clear '清除页面
' end if
'强制浏览器重新访问服务器下载页面,而不是从缓存读取页面
' Response.Buffer = True
' Response.Expires = -1
' Response.ExpiresAbsolute = Now() - 1
' Response.Expires = 0
' Response.CacheControl = "no-cache"
'ACCESS数据库的连接
Set conn=Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("db_syhmw.net/syhmw#db#lear_site.asp")
conn.Open "provider=microsoft.jet.oledb.4.0;data source="&DBPath
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'防SQL注入
If session("Adminlogin")<>"Adminlogin" Then
Dim sql_PostDatas,sql_GetDatas,sql_Strs,sql_FilerStr
sql_GetDatas =""
sql_PostDatas = "'|{|}|[|]|\|:|;|?|`|~|!|$|%|^|(|)|<|>"
'防止Get方法注入
'Response.write Request.QueryString
If Request.QueryString<>"" Then
sql_Strs = Split(sql_GetDatas,"|")
For Each sql_FilerStr In Request.QueryString
For i=0 To Ubound(sql_Strs)
If instr(Request.QueryString(sql_FilerStr),sql_Strs(i))>0 Then
Response.Write "<Script Language=javascript>alert('请不要在参数中包含非法字符!');history.back(-1)</Script>"
Response.End
End If
next
Next
End If
'防止Post方法注入
'Response.write Request.form
If Request.Form<>"" Then
sql_Strs = Split(sql_PostDatas,"|")
For Each sql_FilerStr In Request.Form
For i=0 To Ubound(sql_Strs)
If instr(Request.Form(sql_FilerStr),sql_Strs(i))>0 Then
Response.Write "<Script Language=javascript>alert('您的输入包含非法字符');history.back(-1)</Script>"
Response.End
End If
Next
Next
End If
End If
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 展开
Server.ScriptTimeOut = 20000 '设置脚本超时时间
Response.Buffer = True '设置buffer为True
' On Error Resume Next'开始错误处理
' If Err.Number <> 0 Then '错误处理
' Response.Clear '清除页面
' end if
'强制浏览器重新访问服务器下载页面,而不是从缓存读取页面
' Response.Buffer = True
' Response.Expires = -1
' Response.ExpiresAbsolute = Now() - 1
' Response.Expires = 0
' Response.CacheControl = "no-cache"
'ACCESS数据库的连接
Set conn=Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("db_syhmw.net/syhmw#db#lear_site.asp")
conn.Open "provider=microsoft.jet.oledb.4.0;data source="&DBPath
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'防SQL注入
If session("Adminlogin")<>"Adminlogin" Then
Dim sql_PostDatas,sql_GetDatas,sql_Strs,sql_FilerStr
sql_GetDatas =""
sql_PostDatas = "'|{|}|[|]|\|:|;|?|`|~|!|$|%|^|(|)|<|>"
'防止Get方法注入
'Response.write Request.QueryString
If Request.QueryString<>"" Then
sql_Strs = Split(sql_GetDatas,"|")
For Each sql_FilerStr In Request.QueryString
For i=0 To Ubound(sql_Strs)
If instr(Request.QueryString(sql_FilerStr),sql_Strs(i))>0 Then
Response.Write "<Script Language=javascript>alert('请不要在参数中包含非法字符!');history.back(-1)</Script>"
Response.End
End If
next
Next
End If
'防止Post方法注入
'Response.write Request.form
If Request.Form<>"" Then
sql_Strs = Split(sql_PostDatas,"|")
For Each sql_FilerStr In Request.Form
For i=0 To Ubound(sql_Strs)
If instr(Request.Form(sql_FilerStr),sql_Strs(i))>0 Then
Response.Write "<Script Language=javascript>alert('您的输入包含非法字符');history.back(-1)</Script>"
Response.End
End If
Next
Next
End If
End If
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 展开
2个回答
展开全部
故障原因
此类错误一般出现于文件系统为NTFS格式中,是IIS匿名帐号(IUSR_计算机名)对相关文件、文件夹操作权限不足引起的。
一、存放数据库文件夹对IIS匿名帐号没有写入、修改权限,错误表现为无法对数据库进行更新、写入
二、系统临时文件夹目录对IIS匿名帐号没有写入、修改权限,错误表现为访问服务器上任何采用Microsoft JET Database Engine 链接Access类数据库的文件都是出错。正常情况下是不会出现这个错误的,当使用某些系统垃圾清理优化工具、或其它一些因素可能会导致这个目录权限发生改变。所以请慎重使用此类工具。
解决办法
一、检查存放Microsoft Access数据库文件的文件夹是否有对IIS匿名帐号有写入权限,如果没有,请赋于写入权限,特别是当错误信息为(Microsoft JET Database Engine 错误 '80004005' 操作必须使用一个可更新的查询。)时。
二、JET引擎在链接数据库的时候会在%windir%/temp/目录下创建临时文件,而IIS匿名帐号对%windir%/temp/目录操作权限不够,添加IIS匿名帐号(IUSR_计算机名)对%windir%/temp/的读写权限即可。
其它一些未指定的错误,可以尝试重新注册ASP脚本解释链接库文件。
依顺序运行以下命令:
1.regsvr32 jscript.dll
2.regsvr32 vbscript.dll
3.iisreset
此类错误一般出现于文件系统为NTFS格式中,是IIS匿名帐号(IUSR_计算机名)对相关文件、文件夹操作权限不足引起的。
一、存放数据库文件夹对IIS匿名帐号没有写入、修改权限,错误表现为无法对数据库进行更新、写入
二、系统临时文件夹目录对IIS匿名帐号没有写入、修改权限,错误表现为访问服务器上任何采用Microsoft JET Database Engine 链接Access类数据库的文件都是出错。正常情况下是不会出现这个错误的,当使用某些系统垃圾清理优化工具、或其它一些因素可能会导致这个目录权限发生改变。所以请慎重使用此类工具。
解决办法
一、检查存放Microsoft Access数据库文件的文件夹是否有对IIS匿名帐号有写入权限,如果没有,请赋于写入权限,特别是当错误信息为(Microsoft JET Database Engine 错误 '80004005' 操作必须使用一个可更新的查询。)时。
二、JET引擎在链接数据库的时候会在%windir%/temp/目录下创建临时文件,而IIS匿名帐号对%windir%/temp/目录操作权限不够,添加IIS匿名帐号(IUSR_计算机名)对%windir%/temp/的读写权限即可。
其它一些未指定的错误,可以尝试重新注册ASP脚本解释链接库文件。
依顺序运行以下命令:
1.regsvr32 jscript.dll
2.regsvr32 vbscript.dll
3.iisreset
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询