常见的80004005错误及其解决方法
2008-02-23 06:01:13来源:互联网 阅读 ()
在编写WEB应用程式的过程中,我们常常要跟数据库打交道,例如我们日常经常用的数据库ACCESS、SQL SERVER等。在连接这些数据库的时候,系统往往会给我们一些象这类“80004005”错误,这些五花八门的错误信息很另人头痛。为了方便网友解决这类问题,本文将周详的介绍和解答这类问题。
[错误信息] 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中对数据库所在目录没有正确的权限。
[解决方法] 1、检查文档和目录的权限。 确保Evryone能够在该目录中有新建和删除临时文档的权限。
2、检查数据源文档(DSN)是否被别的程式标志在使用中,这些程式一般都是Visual InterDev,关闭任何一个正在InterDev中打开和数据库连接的项目。
3、检查ACCESS中的某个表是否在这时已连在一个网络服务器上。
[错误信息] Microsoft OLE DB Provider for ODBC Drivers error '80004005' [Microsoft][ODBC Microsoft Access 97 Driver] Couldn't use '(unknown)'; file already in use. [原因]要连接ACCESS数据库这时正在被使用使数据库被锁定,导致无法访问。
[错误信息] 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中初始化的Application连接字符串 ,而这时global.asa文档却没有正常工作。
[解决方法]
检查赋值时是否正确,在asp中加入下面的代码:<%= "'auth_user' is " & request.servervariables("auth_user")%> <P> <%= "'auth_type' is " & request.servervariables("auth_type")%> <P> <%= "connection string is " & session("your_connectionstring")%> <P>更有一个原因就是在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检查注册表的权限。
[错误信息] 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产生的,当他不接受或则不能够认识这个登录帐号的时候,或没有使用管理员身份登录,也可能是在NT中没有SQL影射帐号造成的。
[解决方法]
在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] Couldn't lock file. [原因]也许是没有正确的权限生成Access数据库的锁定文档(。ldb)
默认时,该文档和您的数据库是同一个目录的。
给匿名帐号全权访问数据库共享目录的权限。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash