你目前正处于脱机状态,正在等待 Internet 重新连接

PRB:ASP 错误 80004005“Data Source Name Not Found”(未找到数据源名称)

本文的发布号曾为 CHS306345
重要说明:本文包含有关修改注册表的信息。修改注册表之前,一定要先进行备份,并且一定要知道在发生问题时如何还原注册表。有关如何备份、还原和编辑注册表的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 Microsoft Windows 注册表说明
症状
当您使用 ActiveX 数据对象 (ADO) 或 ODBC 来在 Active Server Pages (ASP) 页中打开数据库连接时,可能会收到以下错误信息:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified.
原因
当您将基于 DSN 的连接字符串(使用系统 DSN 的连接字符串)或无 DSN 的连接字符串与 ADO 和 ODBC 一起使用来在 ASP 页中打开数据库连接时,可能会出现此错误。下面列出了此错误的可能原因。

使用 ODBC DSN

  • 用于处理 ASP 页请求的 Microsoft Windows NT 4.0 或 Windows 2000 用户帐户不具有足够的权限,无法读取存储指定 DSN 的配置信息的注册表项。
  • IIS 服务器上不存在 ADO 连接字符串中所指定的系统 ODBC DSN。
  • 在 ASP 应用程序的 Global.asa 文件中(或在包含数据库连接代码的页之前访问的 ASP 页中)初始化的 ASP ApplicationSession 变量用于指定 ADO 连接字符串。当运行用于打开数据库连接的代码时,不会初始化该连接字符串变量。要确认这一点,请在打开数据库连接的代码行之前添加 Response.Write 语句,以显示变量中存储的连接字符串。

使用无 DSN 连接字符串

  • 用于处理 ASP 页请求的 Windows NT 4.0 或 Windows 2000 用户帐户没有足够的权限,无法读取存储指定的 ODBC 驱动程序的配置信息的注册表项。无 DSN 的连接字符串中的 Driver 参数指定用于建立数据库连接的 ODBC 驱动程序。
  • 在该连接字符串中指定的 ODBC 驱动程序的名称存在拼写错误,或者指定了未安装在 Internet Information Server (IIS) 服务器上的驱动程序。
  • 在 ASP 应用程序的 Global.asa 文件中(或在包含数据库连接代码的页之前访问的 ASP 页中)初始化的 ASP ApplicationSession 变量用于指定 ADO 连接字符串。当运行用于打开数据库连接的代码时,不会初始化该连接字符串变量。要确认这一点,请在打开数据库连接的代码行之前添加 Response.Write 语句,以显示变量中存储的连接字符串。
解决方案
警告:注册表编辑器使用不当可导致严重问题,可能需要重新安装操作系统。Microsoft 不能保证您可以解决因注册表编辑器使用不当而导致的问题。使用注册表编辑器需要您自担风险。

使用 ODBC DSN

权限不够,无法读取 DSN 注册表项

授予 Windows NT 4.0 或 Windows 2000 用户帐户对指定的 ODBC 系统 DSN 注册表项的读取访问权,如下所示:
  1. 确定用于处理 ASP 页请求的帐户。
  2. 开始菜单上,单击运行,键入 regedt32.exe,然后单击确定以启动“注册表编辑器”。
  3. HKEY_LOCAL_MACHINE 窗口中,浏览到 HKLM\SOFTWARE\ODBC\ODBC.INI 项。对于在服务器上注册的每个 ODBC 系统 DSN,ODBC.INI 项都包含一个子项。
  4. 单击在 ADO 连接字符串中指定的 DSN 的 DSN 注册表项。
  5. 安全菜单上,单击权限
  6. 将第 1 步中标识的用户帐户添加到能够访问此注册表项的用户的列表中,然后对此用户选中读取复选框。
  7. 单击应用,然后关闭注册表编辑器。

指定的 DSN 在 IIS 服务器上不存在

在 IIS 服务器上创建指定的系统 ODBC DSN。

用于初始化 ADO 连接字符串的 Global.asa 代码没有运行

  1. 确保已将 IIS 应用程序文件夹设置为具有执行脚本权限的 IIS 虚拟目录。
  2. 确保 Global.asa 文件位于 IIS 应用程序的根目录下。
  3. 如果该应用程序文件夹已被设置为 IIS 虚拟目录,请删除 IIS 应用程序,然后重新予以创建。
  4. 请参阅“参考”一节列出的文章,确定这些文章中是否有哪一篇适合您的具体方案。
  5. 如果执行前面的步骤之后,Global.asa 中的代码仍然不运行,请与 Microsoft 产品支持服务联系。

使用无 DSN 连接字符串

权限不够,无法读取指定的 ODBC 驱动程序注册表项

授予 Windows NT 4.0 或 Windows 2000 用户帐户对以下指定的 ODBC 驱动程序注册表项的读取访问权:
  1. 确定用于处理 ASP 页请求的帐户。
  2. 开始菜单上,单击运行,键入 regedt32.exe,然后单击确定以启动“注册表编辑器”。
  3. HKEY_LOCAL_MACHINE 窗口中,浏览到 HKLM\SOFTWARE\ODBC\ODBCINST.INI 注册表项。对于在服务器上安装的每个 ODBC 驱动程序,ODBCINST.INI 项都包含一个子项。
  4. 单击在 ADO 连接字符串中指定的驱动程序的驱动程序注册表项。
  5. 安全菜单上,单击权限
  6. 将第 1 步中标识的用户帐户添加到能够访问此注册表项的用户的列表中,然后对此用户选中读取复选框。
  7. 单击应用,然后关闭注册表编辑器。

在 IIS 服务器上,驱动程序名称拼错或没有安装

确保 ADO 连接字符串中的 ODBC 驱动程序名称拼写正确无误。此外,验证 IIS 服务器上安装了指定的驱动程序。要查看系统上安装的 ODBC 驱动程序的列表,请参阅驱动程序选项卡上的 ODBC 数据源管理器 (Odbcad32.exe)。

用于初始化 ADO 连接字符串的 Global.asa 代码没有运行

  1. 确保已将 IIS 应用程序文件夹设置为具有执行脚本权限的 IIS 虚拟目录。
  2. 确保 Global.asa 文件位于 IIS 应用程序的根目录下。
  3. 如果该应用程序文件夹已被设置为 IIS 虚拟目录,请删除 IIS 应用程序,然后重新予以创建。
  4. 请参阅“参考”一节列出的文章,确定这些文章中是否有哪一篇适合您的具体方案。
  5. 如果执行前面的步骤之后,Global.asa 中的代码仍然不运行,请与 Microsoft 产品支持服务联系。
状态
这种现象是设计导致的。
更多信息
其凭据被用来处理 ASP 页请求的 Windows NT 4.0 或 Windows 2000 用户帐户由身份验证机制决定,Web 服务器使用该身份验证机制对用户请求进行身份验证。例如,如果您使用匿名身份验证,则使用配置的 IIS 匿名帐户(默认为 IUSR_<WebServerName> 帐户)来处理用户请求。当您使用基本身份验证时,Microsoft Internet Explorer 提示用户提供有效的 Windows NT 4.0 或 Windows 2000 网络 UserId 和密码,随后将使用其凭据来处理请求。有关支持的身份验证机制及其工作方式的其他信息,请参阅联机 IIS 文档。
参考
有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
188715 当 Visual InterDev 创建 IIS 4.0 应用程序时,没有激发 Global ASA
288245 PRB:无法从 Windows 98 上的 Personal Web Server 中激发 Global.asa
265275 FP2000:Global.asa 无法在 FrontPage 网站中运行
173742 FIX:如果限制 Web 访问,将无法执行 Global.asa
属性

文章 ID:306345 - 上次审阅时间:08/11/2006 07:43:00 - 修订版本: 5.0

  • Microsoft Active Server Pages 2.0
  • Microsoft Active Server Pages 3.0
  • Microsoft Internet Information Server 4.0
  • Microsoft Internet Information Services 5.0
  • Microsoft Data Access Components 2.0
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.1 Service Pack 1
  • Microsoft Data Access Components 2.1 Service Pack 2
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.5 Service Pack 1
  • Microsoft Data Access Components 2.5 Service Pack 2
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.6 Service Pack 1
  • Microsoft Data Access Components 2.7
  • kbprb KB306345
反馈