安大互联
财经热点 > Asp编程 > ASP之80004005错误信息的解析
ASP之80004005错误信息的解析
浏览次数:【373】  发布日期:2009-8-13 12:09:22    文章分类:Asp编程   
专题:】 【
 
1.错误信息
MicrosoftO LED BProviderforODBCDriverserror'80004005'
[Microsoft][ODBCMicrosoftAccess97Driver]TheMicrosoftJetdatabase
enginecannotopenthefile'(unknown)'.Itisalreadyopenedexclusively
byanotheruser,oryouneedpermissiontoviewitsdata.

原因:
这个错误发生在当IIS使用匿名帐号(通常是IUSR)时,该帐号在NT中对数据库所在的目录
没有正确的权限.(这就是为啥在Win95和PWS下没问题,因为win95压根就没有目录权限这一说)
检查文件和目录的权限.确定你能够在该目录中有能够新建和删除临时文件的权限。
这些临时文件实际上就是数据库建立在同一个目录下的文件,可是要谨防的是,有可能这些文件
也有可能建立在别的目录,例如/Winnt.

使用NT的文件监视程序监视文件失败时究竟是访问了啥目录。
这个NT的文件监视程序可以在这个地方下载

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

还要检查一下数据源文件(DSN)是否被别的程序标志成为正在使用中,
这些别的程序通常是VisualInterDev,关闭任何一个InterDev中的正打开和数据库连接的项目。

这个错误还可能发生在这种情景:如果在DSN中使用了一个UNC路径(就是通用命名协议),请改用
本地路径进行测试,因为如果对本地数据库使用UNC也有可能犯错。
还可能发生在这种情景,如果服务器要访问Access中的一个表,而这个表却联接在一个网络服务器上。

2.错误信息:
MicrosoftO LED BProviderforODBCDriverserror'80004005'
[Microsoft][ODBCMicrosoftAccess97Driver]Couldn'tuse'(unknown)';file
alreadyinuse.

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

3.错误信息:
MicrosoftO LED BProviderforODBCDriverserror'80004005'
[Microsoft][ODBCDriverManager]Datasourcenamenotfoundandnodefaultdriverspecified.

原因:
最可能的起因是ConnectString是一个在global.asa中初始化的Session变量,可是global.asa
却没有正常工作。解决办法是,检查赋值时是否正确:(在你的asp中加入下面的代码)
<%="'auth_user'is"&request.servervariables("auth_user")%>
<P>
<%="'auth_type'is"&request.servervariables("auth_type")%>
<P>
<%="connectionstringis"&session("your_connectionstring")%>
<P>
还有一个因素就是你在你的ConnectString中加入了多余的空格,例如
DSN=MyDSN;Database=Pubs;
试试改成下面这个样子:
DSN=MyDSN;Database=Pubs;

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

还有可能错误出现的起因是DSN名称没找着,这可以采用我提供的id=36767的措施解决。
最后是检查是否安置了最新的驱动程序,既是否是最新的MDAC版本。

4.错误信息
MicrosoftO LED BProviderforODBCDriverserror'80004005'
[Microsoft][ODBCDriverManager]Datasourcenamenot??

原因:
这个错误有可能是出现在你的计算机上软件安置(或则反安置)的顺序上。
如果ODBC的版本不一样的话,就会发生该错误。
解决办法是安置最新版本的MDAC

5.错误信息:
MicrosoftO LED BProviderforODBCDriverserror'80004005'
[Microsoft][ODBCAccess97ODBCdriverDriver]GeneralerrorUnabletoopenregistrykey'DriverId'.

原因:
这个错误发生在爱从注册表中读取数值的时候。使用regedit32.exe检查你的注册表的权限。
你也可以使用NT中的注册表监视程序(NTRegMon)来看读取失败信息。该程序到这找:

6.错误信息:
MicrosoftO LED BProviderforODBCDriverserror'80004005'
[Microsoft][ODBCSQLServerDriver][dbnmpntw]ConnectionOpen(CreateFile()).

原因:
两个因素:当一个数据库中包含有分别在不用机器上的许可关系时,
这也有可能发生在同一台机器上,当你给一个关系设置了UNC路径,而另外一个关系却是本地路径。
错误起因是:
当用户使用IIS匿名帐号登录后,对本地这台机器而言他是有权的,可是对于一个UNC路径的机器,
另外这台机器是不会认为你当前匿名登录的帐号在它那上面也是合法的。
这样它就不允许你访问它上面的资源,造成错误。

两个解决办法:
1。在IIS工具中,改变IIS匿名帐号成另外一个基于域的帐号。(也就是不使用匿名登录)
2。或则在那台你要访问资源的机器上也建立一个和当前匿名帐号同样的帐号,使用相同的密码。

7.错误信息


原因:
该错误是由SQLServer引发的,当它不接受或则不能够认识这个登录帐号的时候,或没有使用管理员身份登录,
也有可能是在NT中没有SQL影射帐号造成的。

使用系统管理员帐号(SA)登录,一般密码应该为空.注意,这时务必使用CoonectString而不能够使用DSN文件。
因为DSN中没有保存用户名和密码。
检查NT是否给SQL映射了帐号。

8.错误信息
MicrosoftO LED BProviderforODBCDriverserror'80004005'
[Microsoft][ODBCSQLServerDriver][SQLServer]Loginfailed-User:Reason:
NotdefinedasavaliduserofatrustedSQLServerconnection.

原因:
原因同上。
试试这个方案:在SQLServer的EnterpriseManager中,选择Server/SQLServer/Configure[ASCII
133]/SecurityOptions/Standard.
假如是运行在IIS4中,取消选择该项目的PasswordSynchronization选项。

9.错误信息
MicrosoftO LED BProviderforODBCDriverserror'80004005'
[Microsoft][ODBCMicrosoftAccess97Driver]Couldn'tlockfile.

原因:
也许是没有正确的权限生成Access数据库的锁定文件(.ldb)
默认时,该文件和你的数据库是同一个目录的。
给匿名帐号全权访问数据库共享目录的权限。

有时是因为文件是因为共享时有意使用了只读的权限限制。试试使用下面的代码。
SetConn=Server.CreateObject("ADODB.Connection")
Conn.Mode=adModeShareDenyWrite'8

10.错误信息
MicrosoftO LED BProviderforODBCDriverserror'80004005'
[Microsoft][ODBCMicrosoftAccess97Driver]'(unknown)'isn'tavalid
手机扫码浏览该文章
 ● 相关资讯专题
  • 网络建设业务咨询

   TEl:13626712526