***********http500 错误(Window 2003 iis6.0 弄了一天,查遍网上所有方法都不能用,急用,在线等,高手给看看,谢谢了!!!)*******

newpersonlyy 2007-08-19 05:41:39
就是这段代码出错,我在其他机上运行正常,去掉友好错误提示以下错误:

--------------------------------------------------------------
Microsoft JET Database Engine 错误 '80004005'

未指定的错误

/test/Inc/conndb.asp,行 12
---------------------------------------------------------------
以下是conndb.asp代码

<%
'Option Explicit
dim conn
dim connstr
connstr="Databases/db.mdb"
connstr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(connstr)
Set conn = Server.CreateObject("ADODB.Connection")
if err Then
err.clear
end if

conn.Open connstr
sub CloseConn()
conn.Close()
Set conn = Nothing
end sub
%>

...全文
328 点赞 收藏 20
写回复
20 条回复
newpersonlyy 2007年08月21日
谢谢大家的帮助,正确的解决方法如下:
因为 C:\winnt\temp 目录没有对 CR\IUSER_CR 账户开放权限,导致没法创建临时文件(奇怪的是 CR\USER_CR 这个账号访问 Access 的时候需要生成临时文件)。

找到这个目录,设置一下权限。然后刷新网页就会发现好了。
回复 点赞
zhaoxiaoyang5156 2007年08月21日
C:\winnt\temp
暈 。這個我忘了 考慮進去。。那天我好像查到了。。但隨后我的電腦就重起了。。嘿嘿。


其實上面的很多答案都會出現你說的那個錯誤的。。嘿嘿
回复 点赞
zhaoxiaoyang5156 2007年08月20日
為了幫你查資料。。。搞得俺的機子總提醒 木馬。。看樣子我得重起下電腦了。
后一種方法 應該是可行的。
回复 点赞
zhaoxiaoyang5156 2007年08月20日
C:\Documents and Settings\NetworkService\Local Settings下temp目录和C:\Documents and Settings\LocalService\Local Settings下temp目录都添加EVERYONE的读写权限
回复 点赞
zhaoxiaoyang5156 2007年08月20日
原因:
有几个主要的错误原因:
这个错误发生在当你的程序试图执行更新数据库或其它类似操作时。这是因为
ADO由于以下的几个原因而不能够写数据库造成的。
1。最普遍的原因是匿名用户帐号(IUSR_MACHINE)对该数据库文件没有写权限。
要解决这个问题,在管理器中调整数据库文件的属性,让匿名用户有正确的权限。
当使用ACCESS数据库时,不仅要给文件写的权限,还要给该目录写 的权限,因为
Jet需要在该目录建立一个.ldb文件。
2。第二个原因是数据库没有使用正确的模式打开。应该使用下面的方法打开。
SQL = "UPDATE Products Set UnitPrice = 2;"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Mode = 3 ''3 = adModeReadWrite
Conn.Open "myDSN"
Conn.Execute(SQL)
Conn.Close
注意默认的Mode是设置0(adModeUnknown),它是允许更新的。
3。还有可能是在ODBC管理器中将该DSN的只读选项选中。
4。你是在同时更新两个表中的字段,也会出现这个错误信息,解决办法是分开来更新
这两个表中各自字段。
5。当你使用了一个从低版本中(如ACCESS2.0,ACCESS7.0)载入到高版本(ACCESS 2000)
中的查询时,在执行这个查询是会出现该错误。

更具体的,你最好把代码贴出来看看
回复 点赞
ice241018 2007年08月20日
在你的Databases文件里有没有db.ldb这个文件没有?
有的话将其删除掉试试看
回复 点赞
什么都不能 2007年08月20日
先把你的错误弄清楚,看看err.description 或者err.number是什么。只要知道错误类型就好办了。
回复 点赞
wxsfpy 2007年08月20日
别乱说了,这跟程序什么的都没关系,是你ACCESS那个MDB文件的位置对于WEB访问用户没有读取权造成的
回复 点赞
newpersonlyy 2007年08月20日
我的web目录是在D盘(fat32,应该不用考虑权限),而我的C盘是NTFS格式的!!!!
有点乱!!!!
回复 点赞
newpersonlyy 2007年08月20日
谢谢楼上各位了,晚上揭帖!!!!!!
回复 点赞
scscms太阳光 2007年08月19日
on error resume next
dim conn,connstr,db
db="database/db.mdb" '修改连接
connstr="provider=microsoft.jet.oledb.4.0;data source=" & server.mappath(db)
set conn = server.createobject("adodb.connection")
conn.open connstr
if err then
err.clear
set conn = nothing
response.write "数据库连接出错,请检查连接字串。"
response.end
end if
'***关闭数据库***
function closedatabase
conn.close
set conn = nothing
end function

这是我固定使用的格式
回复 点赞
Yubotian 2007年08月19日
把你多余的代码去掉,写车工下边这个样子试下,在结合我上边的帖子,换换连结字串试一下,

<%
dim db
db="database/db.mdb"
set conn=server.createobject("adodb.connection")
conn.open "provider=Microsoft.Jet.OLEDB.4.0;data source="&server.mappath(db)

sub CloseConn()
conn.Close()
Set conn = Nothing
end sub
%>
回复 点赞
newpersonlyy 2007年08月19日
哪位大哥可以告我一下,谢谢拉
回复 点赞
newpersonlyy 2007年08月19日
这个问题真让我头疼,一点头绪都没有!!!!!!!!!
回复 点赞
newpersonlyy 2007年08月19日
Yubotian()
我都试了,还是不行!!!!!!!!!!!!
回复 点赞
Yubotian 2007年08月19日
补充一下:
dim db
db="Database/db.mdb"
回复 点赞
Yubotian 2007年08月19日

可能是你的连接字符串的书写方式有问题,试着换换为以下几种方式试下:

connstr = "DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};DBQ="+server.mappath(db) '此为最标准的用法
或者:
connstr = "provider=Microsoft.Jet.OLEDB.4.0;data source="&server.mappath(db) "此方法也适合大多数服务器
或者:
connstr = "DBQ="+server.mappath(db)+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" '此为最标准的用法的变换

'如果代码有问题会报如下错误!
'Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'
'[Microsoft][ODBC 驱动程序 管理器] 未发现数据源名称并且未指定默认驱动程序
回复 点赞
newpersonlyy 2007年08月19日
ASP(不连数据库)可正常显示,但数据库就出错了
回复 点赞
newpersonlyy 2007年08月19日
另外我的C盘是ntfs 格式,该web目录在E盘,是fat32 格式
回复 点赞
发动态
发帖子
ASP
创建于2007-09-28

1.9w+

社区成员

35.7w+

社区内容

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区公告
暂无公告