关于asp+access网站代号为80004005无法打开的问题

说明:本文章为自己从别的文章那里修改的,若有不明白之处,可以参考原文,原文地址有二个,大家参考

1:http://oeo1oeo1.blog.163.com/blog/static/1703694142010112154739553/

2:http://hi.baidu.com/%CD%C3%CD%C3%B5%C4%B1%A1%BA%C9%D2%B6/blog/item/130b7b8b3be5d2779e2fb42c.html

 

首先,说一下我的整体配置:XP系统,C区为FAT32外,其他区全部为NTFS格式;

IIS5.1,ASP+Access系列的网站

 

要解决这个问题,需要解决两部分的权限:

一:ODBC权限:

解决的是不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0xddc Thread 0x818 DBC 0x10ce7a4 Jet'解决办法

A 启动“注册表编辑器”(开始、运行、Regedt32)。

B 在注册表中选择下面的项:HKEY_LOCAL_MACHINE\SOFTWARE\ODBC

C 在安全菜单上,单击权限。为访问Web页的帐户键入所需的权限。

注意:这里的权限要看你本机器目前的用户,一般大家电脑用户均为Administrator,因此把这个和Everyone添加上,权限设置上

D 退出“注册表编辑器”。

 

二:站点文件夹权限

解决的是刷新不成功、提示为:“Provider (0x80004005) 未指定的错误”的问题

1,打开浏览器的时候,最好把相应的Access关闭。

2,你可能需要检查一下你的网站文件夹是否有Everyone的这个权限。

注意:

1,将Fat32格式的转换成NTFS的形式.

2,找到“文件夹选项->查看->简单文件共享”项,取消这项。这样才可以在右击文件夹属性的时候正常看到安全标签页。

3.最后赋everyone权限,如果你是在本地测试的话,可以将所有权限都赋给Everyone。

 

例:要将驱动器 E 上的卷转换为 NTFS 并且显示所有消息,请键入:convert e:/fs:ntfs /v

三:以上两个步骤设置完后将电脑重启即可

 

 

 

 

关于第二步的其他方法,还有许多种,从网上找的,我没有试验

 

1.解决方案:

找到产生连接数据库的那段代码为 MM_XXXXXX_STRING 付值的语句, 添加UID=;PWD=

(此段代码一般是在站点的CONNECTIONS文件下)

例如:   

错误前:MM_XXXXX_STRING = "dsn=YYYY;"

改正后:MM_XXXX_STRING = "dsn=YYYY;UID=;PWD=;"

 

2.解决方案:

access数据库开始可以连接成功,但提交数据出现“Provider (0x80004005)未指定的错误”,数据库连接出错,刷新页面无效。

 

原数据库连接语句为:

Dim conn

conn = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=e:\web\opwer\表名.mdb"

改为:

Dim conn

conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\web\opwer\表名.mdb"

问题解决。

 

注意:在本机上,用绝对路径,上传到服务器请用相对路径:"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("表名.mdb")

 

3,解决方案:

<%

'不规范的写法如下,有时能正常运行,有时不能。

set conn=server.createobject("adodb.connection")

conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("data/xixi.mdb")

%>

<%

'正确写法如下

dbpath=server.mappath("data/xixi.mdb")

set conn=server.createobject("adodb.connection")

conn.open "provider=microsoft.jet.oledb.4.0;data source=" & dbpath

%>

 

把conn.asp文件改为上述正确写法后,即运行正常。可第二天,又不正常了。还是提示出错。。

继续了以下步骤后才可以访问了

.把IIS里“目录安全性”中的“匿名访问和身份验证控制”取消,换成“集成 WINDOWS身份验证”即可。

不过在本机访问的时候,先提示要输入本机的用户名和密码,反正是在本机运行的,这样也可以。只要能正常运行。

 

网上很多资料都说是没有开启数据库目录的写权限,也有人说是没有开启系统目录下temp的写权限,我不知道这是否是一个误区,毕竟我的是XP系统,XP的解决方法不一定适用于其他操作系统,所以还是转一下别人的帖子,以供参考。

 

转帖中是win2000 server +asp+access(以下是server系统的)

 

解决方法一

Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'常见错误 不能打开注册表关键字错误描述:

----------------------------------

Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'

[Microsoft] [ODBC Microsoft Access Driver]常见错误 不能打开注册表关键 字 'Temporary (volatile) Jet DSN for process 0x728 Thread 0x854 DBC 0x276fb44 Jet'。

----------------------------------

 

连接方式:

--ODBC连接方式------------------------

mdbpath=server.MapPath("my.mdb.asp")

CnnStr = "DBQ=" & mdbpath & ";DRIVER={Microsoft Access Driver (*.mdb)};uid=admin;pwd="

-------------------------------------

 

解决方法:

打开winnt\temp目录 将其安全选项内增加 everyone 用户 权限为完全控制 然后重启计算机如果不重启。会出另外一个错!!!

 

操作系统 win2000 server sp4/sp3

 

网上查找到的解决方法二:

windows+iis服务器上运行asp程序可能会出现数据库无法更新的情况,具体错误信息可能为:

 

1、Microsoft JET Database Engine (0x80040E09) 不能更新。数据库或对象为只读

2、Microsoft OLE DB Provider for ODBC Drivers (0x80004005)[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。

3、Microsoft JET Database Engine (0x80004005) 操作必须使用一个可更新的查询。

 

首先保证您的conn没有任何问题!!

1.把IIS里“目录安全性”中的“匿名访问和身份验证控制”取消,换成“集成 WINDOWS身份验证”即可。

2、在wwwroot文件夹上面点击右键-“属性”-取消“只读”

3、在您的数据库文件上文件夹上面点击右键-“属性”-“安全”-添加用户:“IUSR_计算机名” 并开放“IUSR_计算机名”的读取、写入权限

此方法是目前解决这个问题最好的办法,一般都可以解决问题

 

XP系统下可能点击右键看不到“安全”选项,请先打开“工具”-“文件夹选项”-“查看”-取消“使用简单文件共享(推荐)” 然后即可在属性中找到“安全”选项

 

4、在wwwroot文件夹上面点击右键-“属性”-“web共享”-“共享文件夹”

5.在IIS虚拟目录上点击右键-“属性”-”配置“-”选项“-”启用父目录“

 

网上查找到的方法三:

解决办法:

在Dos命令行状态下分别输入下列命令并按回车(Enter)键:

 

regsvr32 jscript.dll (命令功能:修复Java动态链接库)

regsvr32 vbscript.dll (命令功能:修复VB动态链接库)

 

然后从新启动,即可恢复

 

展开阅读全文

没有更多推荐了,返回首页