⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 microsoft 数据访问组件 (mdac) 收到 0x800040005 错误的一些常见原因.txt

📁 较为详细的介绍了asp自定义的各种函数,方便asp的各种开发.
💻 TXT
📖 第 1 页 / 共 2 页
字号:
如果页面不允许匿名访问,IIS 将会试图验证作出请求的用户的身份,并使用其安全凭据控制其所有活动,如访问数据库
的活动。 下面对这种情形下失败的两个主要原因做了说明。


默认情况下,IIS 被配置为以 Windows NT Challenge/Response 作为其身份验证方法。 由于 Windows NT 4.0(及更早版
本)安全模型的限制,经过 Windows NT Challenge/Response 身份验证的用户也无法访问远程计算机上的资源。 这通常
称为委派问题。 要验证是不是这种情况,可在“Internet 服务管理器”工具中,从 Web 属性下选择基本(明文)复选
框,然后清除 Windows NT Challenge/Response。 如果这一步骤解决了问题,很明显这是一个委派问题。

-或者-


如果问题仍旧存在,可能是所使用的用户帐户没有正确的 SQL Windows NT 计算机权限。 不妨尝试使用一个明确拥有该
SQL 计算机访问权限的帐户。


有关委派、IIS 如何通过身份验证来保护 Web 站点,以及相关问题的详细信息,请参见文章“IIS Authentication and
Security for Internet Developers”,它位于以下 Web 站点:
http://www.microsoft.com/workshop/server/feature/security.asp


错误消息
Microsoft OLE DB Provider for ODBC Drivers error '80004005' Microsoft][ODBC Microsoft SQL Driver] Logon
Failed()
原因
该错误是在 SQL 服务器不接受或不认可所提交的登录帐户及/或密码(使用标准安全性时),或者没有任何 Windows NT
帐户映射到 SQL 帐户(使用集成安全性时)时,由 SQL 服务器生成的。
如果使用的是标准安全性,说明 SQL 帐户名和密码不正确。 请尝试使用系统管理员帐户和密码(UID= "SA",密码为
空)。 这些必须在连接字符串行中定义, 因为 DSN 不存储用户名和密码。


如果使用的是集成安全性,则检查调用页面的 Windows NT 帐户,找出它所映射的目标帐户。


SQL 不允许 SQL 帐户名中有下划线。 如果某人把 Windows NT 帐户 IUSR_machinename 手动映射到一个同名的 SQL 帐
户,就会失败。 请把所有包含下划线的帐户都映射为 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 Enterprise Manager(企业管理器)中打开了集成安全性,而所使用的 Windows NT 帐户未被映射到 SQL 帐户。


请尝试把 SQL 改用标准安全性(在 Enterprise Manager 中,选择 Server/SQL Server/Configure/Security
Options/Standard。


如果您是在 IIS 4.0 下运行,则取消选择该工程的密码同步。


错误消息
Microsoft OLE DB Provider for ODBC Drivers error '80004005' [Microsoft][ODBC Microsoft Access 97 Driver]
Couldn't lock file.
原因
这一错误可能是由于没有正确的权限为 Microsoft Access 数据库创建锁定文件 (.ldb) 而引起的。 默认情况下,锁定文
件与 Microsoft Access .mdb 文件创建在同一文件夹下。


请尝试赋予访问数据库(通常是 IUSR_machinename)的用户以共享/文件夹的完全控制权限。


有时,共享文件夹权限被设置为只读。 您也可以尝试更改连接模式,这时可以使用以下示例代码:
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Mode = adModeShareDenyWrite    '8
  'From Adovbs.inc
  '---- ConnectModeEnum values ----
  'Const adModeUnknown = 0
  'Const adModeRead = 1
  'Const adModeWrite = 2
  'Const adModeReadWrite = 3
  'Const adModeShareDenyRead = 4
  'Const adModeShareDenyWrite = 8
  'Const adModeShareExclusive = &Hc
  'Const adModeShareDenyNone = &H10



错误消息
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 服务器被重命名的情况下。 由于无法找到计算机名,引用旧名称的 DSN 将会失败。
错误消息
Microsoft OLE DB Provider for ODBC Drivers error '80040e21' Errors occurred
原因
这一错误可能是由于试图向一个字段插入过多的数据,超过允许值而引起。 比如,一个 Microsoft Access 字段格式设置
为只接受 25 个字符,而试图插入 26 个字符。
错误消息
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,要确保使用的是实际列名,而不是列的“显示”名。


参考
如要启用 Visual InterDev 的远程工作站工作方式,请按照以下 Microsoft Knowledge Base 文章所述,以建立系统
DSN:

Q178215 HOWTO: 配置 VID 以用于身份验证 Web 工程
Q174943 PRB: 80004005“Couldn't Use '(unknown)';File Already in Use”

Q173742 BUG: 限制 Web 访问时,Global.asa 不被执行

Q172864 ASP 页面无法访问会话及应用程序对象

Q156526 连接 Access 数据源时的一般错误 =51

Q175671 PRB: 访问时的 SQL80004005 ConnectionOpen (CreateFile()) 错误

Q149425 IDC: 执行查询错误,没有定义为有效用户

Q167452 PRB: 使用 Access 数据源时的‘Not a valid path’错误

Q125767 PRB: 执行 SQL 查询后的查询过于复杂错误

Q166659 PRB: 第二次尝试时访问 SQL 数据库失败

Q166029 PRB: 使用 Access 时,无法打开不明文件

Q178215 HOWTO: 配置 VID 以用于身份验证 Web 工程
''=================================== 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -