ASP学习:错误80004005信息处理方法

2010-08-28 10:45:39来源:西部e网作者:

   1.错误信息

   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中的一个表,而这个表却联接在一个网络服务器上。  

   2.错误信息:  

   Microsoft OLE DB Provider for ODBC Drivers error '80004005'

   [Microsoft][ODBC Microsoft Access 97 Driver] Couldn't use '(unknown)'; file

   already in use.   

   原因:  

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

   3.错误信息:  

   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

  却没有正常工作。解决办法是,检查赋值是否正确:  

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

   DSN = MyDSN; Database = Pubs;

   试试改成下面这个样子:

   DSN=MyDSN;Database=Pubs;  

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

关键词:ASP

赞助商链接: