• 欢迎访问水熊虫网站,这里是我个人的工作博客,内容大多是遇到问题完善后,会在这里进行总结归纳内容! QQ群
  • 网站导航中的友情链接专栏上线,更新的都是自己这三年整理的一些东西,感兴趣可以看看!
  • 你所浪费的今天,是昨天死去的人奢望的明天。你所厌恶的现在,是未来的你回不去的曾经!

[转载]ASP中常见的错误80004005信息

整理归纳 WaterBear 6年前 (2018-01-27) 654次浏览 已收录 扫描二维码

错误信息

Microsoft OLE DB Provider for ODBC Drivers error 80004005

[Microsoft][ODBC Microsoft Access 97 Driver] The Microsoft Jet database

engine cannot open the file (unknown). It is already opened exclusively

by another user, or you need permission to view its data.

原因:

这个错误发生在当IIS使用匿名帐号(通常是IUSR)时,该帐号在NT中对数据库所在的目录

没有正确的权限.(这就是为什么在Win95和PWS下没问题,因为win95根本就没有目录权限这一说)

检查文件和目录的权限. 确定你能够在该目录中有能够新建和删除临时文件的权限。

这些临时文件其实是数据库建立在同一个目录下的文件, 但是要注意的是,有可能这些文件

也可能建立在别的目录,例如 /Winnt.

使用NT的文件监视程序监视文件失败时到底是访问了什么目录。

这个NT的文件监视程序可以在这个地方下载http://www.sysinternals.com.

 

如果你对数据库使用了一个网络地址,例如映射地址,就要检查一下共享文件和目录的权限,

还要检查一下数据源文件(DSN)是否被别的程序标志成为正在使用中,

这些别的程序一般是Visual InterDev,关闭任何一个InterDev中的正打开和数据库连接的项目。

这个错误还可能发生在这种情况:如果在DSN中使用了一个UNC路径(就是通用命名协议),请改用本地路径进行测试,因为如果对本地数据库使用UNC也可能出错。

还可能发生在这种情况,如果服务器要访问Access中的一个表,而这个表却联接在一个网络服务器上。

 

错误信息:

Microsoft OLE DB Provider for ODBC Drivers error 80004005

[Microsoft][ODBC Microsoft Access 97 Driver] Couldnt use (unknown); file

already in use.

原因:

多人使用时数据库被锁定。

 

错误信息:

Microsoft OLE DB Provider for ODBC Drivers error 80004005

[Microsoft][ODBC Driver Manager] Data source name not found and no default

driver specified.

原因:

最可能的原因是ConnectString是一个在global.asa中初始化的Session变量 ,但是global.asa

却没有正常工? 解决办法是,检查赋值时是否正确:(在你的asp中加入下面的代码)

$#@60;%= "auth_user is " & request.servervariables("auth_user")%$#@62;

$#@60;P$#@62;

$#@60;%= "auth_type is " & request.servervariables("auth_type")%$#@62;

$#@60;P$#@62;

$#@60;%= "connection string is " & session("your_connectionstring")%$#@62;

$#@60;P$#@62;

还有一个原因就是你在你的ConnectString中加入了多余的空格,例如

DSN = MyDSN; Database = Pubs;

试试改成下面这个样子:

DSN=MyDSN;Database=Pubs;

如果是global.asa还没有工作,检查该文件是否在运用程序的根目录中,或者是虚拟目录的根目录中。

还有可能错误出现的原因是DSN名称没找着,这可以采用我提供的id=36767的办法解决。

最后是检查是否安装了最新的驱动程序,既是否是最新的MDAC版本。

 

错误信息

Microsoft OLE DB Provider for ODBC Drivers error 80004005

[Microsoft][ODBC Driver Manager] Data source name not ??

原因:

这个错误有可能是出现在你的计算机上软件安装(或则反安装)的顺序上。

如果ODBC的版本不一致的话,就会发生该错误。

解决办法是安装最新版本的MDAC

 

错误信息:

Microsoft OLE DB Provider for ODBC Drivers error 80004005

[Microsoft][ODBC Access 97 ODBC driver Driver]General error Unable to open

registry key DriverId.

原因:

这个错误发生在爱从注册表中读取数值的时候。 使用regedit32.exe检查你的注册表的权限。

你也可以使用NT中的注册表监视程序(NTRegMon)来看读取失败信息。 该程序到这找:http://www.sysinternals.com

 

错误信息:

Microsoft OLE DB Provider for ODBC Drivers error 80004005

[Microsoft][ODBC SQL Server Driver][dbnmpntw]ConnectionOpen (CreateFile()).

原因:

两个原因:当一个数据库中包含有分别在不用机器上的许可关系时,

这也可能发生在同一台机器上,当你给一个关系设置了UNC路径,而另一个关系却是本地路径。

错误原因是:

当用户使用IIS匿名帐号登录后,对本地这台机器而言他是有权的,但是对于一个UNC路径的机器,

另外这台机器是不会认为你当前匿名登录的帐号在它那上面也是合法的。

这样它就不允许你访问它上面的资源,导致错误。

两个解决办法:

1。在IIS工具中,改变IIS匿名帐号成另外一个基于域的帐号。(也就是不使用匿名登录)

2。或则在那台你要访问资源的机器上也创建一个和当前匿名帐号同样的帐号,使用同样的密码。

 

错误信息

Microsoft OLE DB Provider for ODBC Drivers error 80004005 Microsoft][ODBC

Microsoft SQL Driver] Logon Failed()

原因:

该错误是由SQL Server产生的,当它不接受或则不能够认识这个登录帐号的时候,或者没有使用管理员身份登录,

也可能是在NT中没有SQL影射帐号造成的。

 

使用系统管理员帐号(SA)登录,一般密码应该为空.注意,这时必须使用CoonectString而不能够使用DSN文件。

因为DSN中没有保存用户名和密码。

检查NT是否给SQL映射了帐号。

 

错误信息

Microsoft OLE DB Provider for ODBC Drivers error 80004005

[Microsoft][ODBC SQL Server Driver][SQL Server] Login failed- User: Reason:

Not defined as a valid user of a trusted SQL Server connection.

原因:

原因同上。

试试这个办法:在SQL Server的Enterprise Manager中,选择Server/SQL Server/Configure[ASCII

133]/Security Options/Standard.

如果是运行在IIS4中,取消选择该项目的Password Synchronization选项。

 

错误信息

Microsoft OLE DB Provider for ODBC Drivers error 80004005

[Microsoft][ODBC Microsoft Access 97 Driver] Couldnt lock file.

原因:

也许是没有正确的权限生成Access数据库的锁定文件(.ldb)

默认时,该文件和你的数据库是同一个目录的。

给匿名帐号全权访问数据库共享目录的权限。

 

有时是因为文件是因为共享时有意使用了只读的权限限制。试试使用下面的代码。

Set Conn = Server.CreateObject("ADODB.Connection")

Conn.Mode = adModeShareDenyWrite 8

 

错误信息

Microsoft OLE DB Provider for ODBC Drivers error 80004005

[Microsoft][ODBC Microsoft Access 97 Driver] (unknown) isnt a valid

path. Make sure that the path name is spelled correctly and that you are

connected to the server on which the file resides.

原因:

路径非法。最可能发生在当Global.asa和CoonecntString被使用到另外一台机器上的时候。

 

错误信息

Microsoft OLE DB Provider for ODBC Drivers error 80004005

[Microsoft][ODBC SQL Server Driver][SQL Server] The query and the views in

it exceed the limit of 16 tables.

 

原因:

查询太复杂了,对查询有限制。

 

错误信息:

Microsoft OLE DB Provider for ODBC Drivers error 80004005

[Microsoft][ODBC SQL Server Driver][DBMSSOCN] General network error. Check

your network document

原因:

当装有SQL Server的机器改名的时候。但是DSN还使用了原来的机器名。

 

从网上下载了一个asp系统,数据库是Access类型的,运行环境为 64位Windows 7系统,IIS7,运行系统后,报如下错误:

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

[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

/bkconn.asp,行 6

原因:64位操作系统不支持Microsoft OLE DB Provider for Jet驱动程序,也不支持更早的Microsoft Access Driver (*.mdb)方式连接。

解决办法:程序里面的链接字符串不能正常工作。需要修改下IIS的工作环境,改成32位的,在IIS的管理界面中。把应用程序池中的默认应用程序池常规选项中的32位方式启用就可以了:

 


WaterBear , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:[转载]ASP中常见的错误80004005信息
喜欢 (0)
[[email protected]]
分享 (0)