现在的位置: 首页 > 综合 > 正文

关于 Active Server Pages 和 Microsoft 数据访问组件中的 80004005 错误的疑难解答

2012年01月15日 ⁄ 综合 ⁄ 共 14908字 ⁄ 字号 评论关闭

关于 Active Server Pages 和 Microsoft 数据访问组件中的 80004005 错误的疑难解答

文章编号 : 306518
最后修改 : 2006年12月26日
修订 : 9.1


概要

本文列出了各种 80004005 错误消息、导致错误消息的最常见原因以及解决问题的疑难解答步骤。收到 80004005 错误的是 Active Server Pages 中的 Microsoft 数据访问组件 (MDAC),其中包括 Microsoft ActiveX 数据对象 (ADO)、OLE DB 以及远程数据服务 (RDS)。虽然本文假定您是在 Active Server Pages (ASP) 页中使用 ADO,但是导致错误的原因以及许多故障排除步骤适用于任何使用 ODBC 进行数据访问的环境。

回到顶端

更多信息

错误消息列表


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.

原因


出现此消息的原因有多种。 有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

306269 (http://support.microsoft.com/kb/306269/) PRB:错误 80004005“The Microsoft Jet Database Engine Cannot Open the File '(Unknown)'”(Microsoft Jet 数据库引擎无法打开文件“(未知)”)
189408 (http://support.microsoft.com/kb/189408/) FIX:在 IIS 4.0 和 IIS 5.0 中 ASP 无法访问网络文件

错误消息

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] Couldn't use '(unknown)'; file already in use.

原因


无法为多个用户正确锁定数据库。 有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

174943 (http://support.microsoft.com/kb/174943/) PRB:80004005“Couldn't 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.

原因


此错误是比较常见的错误之一,有多种解决方案。 有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

306345 (http://support.microsoft.com/kb/306345/) PRB:ASP 错误 80004005“Data Source Name Not Found”(未找到数据源名称)

请确保安装了最新的驱动程序。可从以下 Microsoft 网站下载 MDAC 的最新版本:

http://msdn.microsoft.com/dataaccess (http://msdn.microsoft.com/dataaccess)

错误消息

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not ??

原因


之所以会出现此错误是因为计算机上安装和卸载软件的顺序有问题。如果 ODBC 核心文件变得不同步(它们的版本应该都相同),您可能会收到此错误。

要更新所有的核心 ODBC 驱动程序,请从以下 Microsoft 网站安装 MDAC 的最新版本:

http://msdn.microsoft.com/dataaccess (http://msdn.microsoft.com/dataaccess)

错误消息

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Access 97 ODBC driver Driver]General error Unable to open registry key 'DriverId'.

原因


当您从注册表中读取值时,会出现此错误。使用注册表编辑器 (Regedt32.exe) 检查注册表项的权限。还可以使用 Windows NT 注册表监视器 (NTRegMon) 检查注册表读取故障。可以从下面的 Sysinternals 网站下载 NTRegMon:

http://www.microsoft.com/technet/sysinternals/default.mspx (http://www.microsoft.com/technet/sysinternals/default.mspx)

错误消息

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][dbnmpntw]ConnectionOpen (CreateFile()).

原因


导致此错误的原因有两种,它们都与权限有关。当数据库驻留在 Web 服务器以外的计算机上时,或者当您使用通用命名约定 (UNC) 路径 (//Server/Share) 引用数据库时,会出现此错误。即使数据库和 Web 服务器在同一台计算机上,当您使用 UNC 路径时,Web 服务器也假定数据库驻留在网络上的不同计算机上。

有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

175671 (http://support.microsoft.com/kb/175671/) PRB:访问 SQL 时出现 80004005 ConnectionOpen (CreateFile()) 错误

有关委派、Microsoft Internet Information Server (IIS) 如何使用身份验证保护网站,以及诸如此类的问题的更多信息,请参考下面的 Microsoft 网站:

IIS Authentication and Security for Internet Developers(Internet 开发人员的 IIS 身份验证和安全)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnauth/html/dnauth_security.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnauth/html/dnauth_security.asp)

错误消息

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
Microsoft][ODBC Microsoft SQL Driver] Logon Failed()

原因


如果 SQL Server 不接受或者不能识别提交的登录帐户和/或密码(如果您使用的是“标准”安全性),或者没有 Windows NT 帐户到 SQL 帐户的映射(如果您使用的是“集成”安全性),SQL Server 就会产生此错误。

有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

306586 (http://support.microsoft.com/kb/306586/) PRB:ASP 中的错误 80004005“Login Failed”(登录失败)的疑难解答

错误消息

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 企业管理器中打开了“集成”安全性,以及所用的 Windows NT 帐户没有映射为 SQL 帐户。要解决此问题,请使用以下方法之一:

配置 SQL Server 以使用“标准”安全性。在 SQL 企业管理器中,右键单击“服务器”,然后单击“SQL Server”。在“SQL Server 属性”对话框中,单击“安全选项”选项卡。在“身份验证”下,单击以选中“SQL Server 和 Windows”,然后单击“确定”。
如果您是在 IIS 4.0 下运行,请清除该项目的“密码同步”复选框。

错误消息

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] Couldn't lock file.

原因


有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

306441 (http://support.microsoft.com/kb/306441/) PRB:ASP 中的错误 80004005“Couldn't Lock File”(无法锁定文件)的疑难解答

错误消息

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver]
'(unknown)' isn't 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.

原因


Web 服务器正在读取的路径不是有效路径。当使用 Global.asa 文件时,如果在 Web 服务器以外的计算机上创建连接字符串,通常会出现此错误。如果路径是一个映射驱动器号,它可能仅对创建连接字符串的客户端计算机有效。

错误消息

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][DBNMPNTW]
ConnectionWrite (GetOverLappedResult()).

原因


如果您关闭允许匿名用户上下文,在首次请求完成后,Windows NT 将关闭 SQL Server 的管道。这是因为首次连接到 SQL Server 时用的是 IIS 匿名用户帐户。然后,IIS 或者模拟该同一线程上的浏览器客户端,或者尝试访问在模拟用户上下文中运行的另一个线程上的连接。不论何种情况,Windows NT 都会检测到使用在别的用户上下文中打开的网络命名管道句柄的企图,并根据安全规则强行关闭管道。当您使用网络监视器查看 SQL Server 上的连接时,Windows NT 会发出一个命名管道关闭请求,这将导致 Web 浏览器中出现此错误。

错误消息

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][DBMSSOCN]
General network error. Check your network document

原因


当您重命名 SQL Server 计算机时,会出现此错误。当无法找到计算机名称时,引用原名称的域名系统 (DNS) 将失败。

错误消息

Microsoft OLE DB Provider for ODBC Drivers error '80040e21'
Errors occurred
- 或 -
80004005: ConnectionWrite(GetOverLappedResult)

原因


当您试图在字段中插入超出允许数量的数据时(例如,在格式设置为仅接受 25 个字符的 Microsoft Access 字段中插入 26 个字符),会出现此错误。

有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

166659 (http://support.microsoft.com/kb/166659/) PRB:再次尝试访问 SQL 数据库时失败

错误消息

Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.

原因


导致此错误的原因有多种;请参见“参考”一节,查看与此错误消息有关的文章。

错误消息

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access 97 Driver]
Syntax error in INSERT INTO statement.

原因


之所以会出现此错误是因为某个列名可能是保留字(如“DATE”)。将列名更改为非保留字(如“SaleDate”)。

错误消息

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access 97 Driver]
Too few parameters. Expected 1.

原因


之所以会出现此错误是因为您在查询语法中使用了不存在的列名。通常,此错误只不过是一个拼写错误。将数据库中的列名与查询字符串进行对比检查。如果使用的是 Microsoft Access,请确保使用的是实际的列名,而不是列的“显示”名称。

回到顶端

参考

与 Microsoft Access 有关的文章

163159 (http://support.microsoft.com/kb/163159/) ACC97:如何使用 ASP 文件查询安全性增强的 Microsoft Access 数据库
166029 (http://support.microsoft.com/kb/166029/) PRB:使用 Access 时出现“Cannot Open File Unknown”(无法打开未知文件)错误
167452 (http://support.microsoft.com/kb/167452/) PRB:使用 Access 数据源时出现“Not a valid path”(不是有效路径)错误
174943 (http://support.microsoft.com/kb/174943/) PRB:80004005“Couldn't Use '(unknown)'; File Already in Use”(无法使用“(未知)”,文件已在使用)
189408 (http://support.microsoft.com/kb/189408/) FIX:在 IIS 4.0 和 IIS 5.0 中 ASP 无法访问网络文件
207525 (http://support.microsoft.com/kb/207525/) PRB:IIS4:使用 UNC 路径时 ASP/ADO 无法工作
234011 (http://support.microsoft.com/kb/234011/) 将窗体结果保存到 Access 数据库时出现 ODBC 错误
306269 (http://support.microsoft.com/kb/306269/) PRB:错误 80004005“The Microsoft Jet Database Engine Cannot Open the File '(Unknown)'”(Microsoft Jet 数据库引擎无法打开文件“(未知)”)
306441 (http://support.microsoft.com/kb/306441/) PRB:ASP 中的错误 80004005“Couldn't Lock File”(无法锁定文件)的疑难解答

与 Microsoft SQL Server 有关的文章

166659 (http://support.microsoft.com/kb/166659/) PRB:再次尝试访问 SQL 数据库时失败
169377 (http://support.microsoft.com/kb/169377/) 如何在 Active Server Pages 中访问 SQL Server
174638 (http://support.microsoft.com/kb/174638/) PRB:向 SQL 存储过程传递日期参数时出现 ODBC 错误
175671 (http://support.microsoft.com/kb/175671/) PRB:访问 SQL 时出现 80004005 ConnectionOpen (CreateFile()) 错误
178040 (http://support.microsoft.com/kb/178040/) PRB:更新/插入操作中的 ConnectionWrite(GetOverLappedResult) - SQL
186726 (http://support.microsoft.com/kb/186726/) 从 SQL Server 中检索数据时出现错误 80004005
253500 (http://support.microsoft.com/kb/253500/) PRB:从 ASP 连接到 SQL Server 时出现“Client Unable to Establish Connection”(客户端无法建立连接)错误消息
297035 (http://support.microsoft.com/kb/297035/) FIX:对 SQLOLEDB 一起使用 Parameters.Refresh 时出现关联错误
306586 (http://support.microsoft.com/kb/306586/) PRB:ASP 中的错误 80004005“Login Failed”(登录失败)的疑难解答

与用于 ODBC 驱动程序的 Microsoft OLE DB 提供程序有关的文章

172684 (http://support.microsoft.com/kb/172684/) XL97:无法撤消图表对象上文本框中的背景色
173742 (http://support.microsoft.com/kb/173742/) FIX:如果限制 Web 访问则无法执行 Global.asa
174640 (http://support.microsoft.com/kb/174640/) PRB:更新表记录时出现 ASP 错误“The Query Is Not Updateable”(查询不可更新)
175168 (http://support.microsoft.com/kb/175168/) ASP 返回“Operation Must Use an Updateable Query”(操作必须使用可更新的查询)错误
178215 (http://support.microsoft.com/kb/178215/) 如何配置 Visual InterDev 以使用经验证的 Web 项目
189206 (http://support.microsoft.com/kb/189206/) PRB:将默认语言设置为 JScript 时出现“Couldn't Find File 'Unknown'”(找不到文件“未知”)错误
190006 (http://support.microsoft.com/kb/190006/) 浏览 ASP 页时出现“ODBC Drivers Error 80004005”(ODBC 驱动程序错误 80004005)
194800 (http://support.microsoft.com/kb/194800/) PRB:记录集 DTC 中的“Invalid Use Of Default Parameter”(默认参数的使用方式无效)错误
195951 (http://support.microsoft.com/kb/195951/) 如何从 ASP 中使用 ADO 查询和更新 Excel 数据
201004 (http://support.microsoft.com/kb/201004/) PRB:使用数据范围页眉和页脚控件时出现错误 80004005
234205 (http://support.microsoft.com/kb/234205/) PRB:文件“(未知)”,出现异常或没有使用记录集 DTC 的数据
238971 (http://support.microsoft.com/kb/238971/) 错误消息:Microsoft OLE DB Provider for ODBC Drivers Error '80004005'(用于 ODBC 驱动程序的 Microsoft OLE DB 提供程序错误“80004005”)
306345 (http://support.microsoft.com/kb/306345/) PRB:ASP 错误 80004005“Data Source Name Not Found”(未找到数据源名称)

与 Novell NetWare 有关的文章

178045 (http://support.microsoft.com/kb/178045/) 如何配置 ASP 以读取 Novell 服务器上的数据文件
271214 (http://support.microsoft.com/kb/271214/) 无法从 IIS 5.0 访问 Netware 5 服务器上的 FoxPro 数据库
271228 (http://support.microsoft.com/kb/271228/) 无法使用 ASP 从驻留在 Netware 5 服务器上的 Access 数据库中获取数据
271459 (http://support.microsoft.com/kb/271459/) 无法从 Netware 5 服务器上的 Access 数据库中提取数据 - 错误消息:File Not Found(找不到文件)

与 Oracle 有关的文章

183345 (http://support.microsoft.com/kb/183345/) FIX:ASP、MTS 和连接池中的 ORA-00000 错误消息
222990 (http://support.microsoft.com/kb/222990/) FIX:BUG:在 Oracle 中调用某些存储过程时出现错误 0x80004005
255084 (http://support.microsoft.com/kb/255084/) 如何解决 ASP 与 Oracle 之间的连接问题

其他文章

184572 (http://support.microsoft.com/kb/184572/) PRB:使用 PWS 4.0、Windows 95 和 VID 创建应用程序
194397 (http://support.microsoft.com/kb/194397/) Err Msg:Application Object Error 'ASP 0197 :80004005' Disallowed Object Use(应用程序对象错误“ASP 0197:80004005”不允许的对象使用方式)
197323 (http://support.microsoft.com/kb/197323/) 如何排查记录集 DTC 中的“ADODB.Connection”错误 800a0bb9
198531 (http://support.microsoft.com/kb/198531/) FIX:RDS 2.0 客户端无法将更改提交到 RDS 1.5 服务器
222828 (http://support.microsoft.com/kb/222828/) Err Msg:Microsoft OLE DB Provider for ODBC Drivers Error '80040e4d'(用于 ODBC 驱动程序的 Microsoft OLE DB 提供程序错误“80040e4d”)
225042 (http://support.microsoft.com/kb/225042/) BUG:错误消息:Error '80004005' Unexpected Error(“80004005”意外错误)
228935 (http://support.microsoft.com/kb/228935/) FIX:未初始化字符串变量、空字符串值、Jet 提供程序以及出现的错误
229657 (http://support.microsoft.com/kb/229657/) PRB:ASP 0156:80004005 标头错误
237536 (http://support.microsoft.com/kb/237536/) PRB:将断开连接的记录集从 MTS 传递到 ASP 时出现 80004005 未指定错误
247931 (http://support.microsoft.com/kb/247931/) 在 Active Server Pages 中连接到 SQL Server 使用的身份验证方法
250809 (http://support.microsoft.com/kb/250809/) 通过 SSL 使用 RDS 时出现“Unexpected Error”(意外错误)
253114 (http://support.microsoft.com/kb/253114/) PRB:在 VB COM 对象中使用 DEconnection 时出现 SQL_DRIVER_NOPROMPT 错误
253157 (http://support.microsoft.com/kb/253157/) BUG:执行 SET IDENTITY_INSERT ON 语句后“标识”字段仍然为只读
253696 (http://support.microsoft.com/kb/253696/) 在 IIS 4.0 上使用 ADO 2.5 和 Internet Publishing Provider (MSDAIPP) 无法访问 URL
253779 (http://support.microsoft.com/kb/253779/) 如何解决 DE 命令的“80020009 Exception Occurred”(出现 80020009 异常)
257556 (http://support.microsoft.com/kb/257556/) FIX:当 ODBC 驱动程序返回超过 15 个字符的 TABLE_TYPE 时出现 DB_E_ERRORSOCCURRED
259382 (http://support.microsoft.com/kb/259382/) Microsoft Transaction Server (MTS) 知识库文章索引
259383 (http://support.microsoft.com/kb/259383/) INFO:ASP 知识库文章索引
265263 (http://support.microsoft.com/kb/265263/) PRB:无法为 SQL 查询打开到 OLAP 服务器的客户端游标
269495 (http://support.microsoft.com/kb/269495/) PRB:打开 ADO 连接时出现“Multiple-step OLE DB operation generated errors”(多步骤 OLE DB 操作产生错误)
270119 (http://support.microsoft.com/kb/270119/) 使用 OpenQuery 函数对远程表执行 UPDATE、INSERT 或 DELETE Transact-SQL 语句时出现错误消息:“7357”和“7320”
272583 (http://support.microsoft.com/kb/272583/) MOD2000:文档库示例中出现“Multiple-Step OLE DB Operation Generated Errors”(多步骤 OLE DB 操作产生错误)错误消息
272693 (http://support.microsoft.com/kb/272693/) 安装 Crystal Reports 8 后连接到数据库时出现 0x80004005 ASP 错误消息
273482 (http://support.microsoft.com/kb/273482/) PRB:发布窗体时出现“Request Object, ASP 0107 (0x80004005)”(请求对象,ASP 0107 (0x80004005))错误
276020 (http://support.microsoft.com/kb/276020/) 使用 Visual InterDev 升级到 Windows 2000
277381 (http://support.microsoft.com/kb/277381/) 模型名称超过 128 个字符时预测器模型将失败
284067 (http://support.microsoft.com/kb/284067/) 当密码为空时无法使用基本身份验证为 Exchange 2000 或 SharePoint Portal Server 建立索引
285081 (http://support.microsoft.com/kb/285081/) INFO:XMLHTTPRequest 对象需要 Internet Explorer 5.0 或更高版本
286245 (http://support.microsoft.com/kb/286245/) PRB:使用 DB2OLEDB 和服务器端 ADO 游标更新记录时出错
288785 (http://support.microsoft.com/kb/288785/) INFO:DB2OLEDB 提供程序支持的游标类型
292644 (http://support.microsoft.com/kb/292644/) STS:更改密码后出现错误消息:ADO Error 80040E4D: Login Failed for User 'sa'(ADO 错误 80040E4D:用户“sa”登录失败)
294160 (http://support.microsoft.com/kb/294160/) BUG:更新新插入的行会导致出现 DB_E_ERRORSOCCURRED
296169 (http://support.microsoft.com/kb/296169/) PRB:在 JavaScript 中分配会话变量时出现错误“Session Object, ASP 0168”(会话对象,ASP 0168)
306216 (http://support.microsoft.com/kb/306216/) PRB:ASP/ADO/SQL Server 中的错误“Unable to Load Communication Module”(无法加载通信模块)
307002 (http://support.microsoft.com/kb/307002/) PRB:ASP/ODBC/SQL Server 错误 0x80040E4D“Login Failed for User '(Null)'”(用户“(Null)”登录失败)

 

抱歉!评论已关闭.