用于ODBC驱动程序的OLE DB提供程序错误“80004005”

问题描述:

我必须将某些客户站点从旧IIS服务器移动到较新的IIS服务器,并且有些站点有麻烦,无法以正确的方式工作,其中大多数人抱怨失败所谓:用于ODBC驱动程序的OLE DB提供程序错误“80004005”

Microsoft OLE DB提供程序的ODBC驱动程序错误 '80004005'

[微软] [ODBC驱动程序管理器]数据源名称未找到和指定默认驱动程序

我。已经在互联网上阅读,这可能取决于缺少授予用户的权利;其他网站指出Temp文件夹丢失(我无法想象这是正确的)...还有其他几个“解决方案”。

在服务器上打开everone的权限(如某人所述)不适合我。对每个客户给予明确的权利也是非常痛苦的(有几个客户需要这些权利)。

您是否知道更简单的解决方案或类似的方法或替代方案?

ADODB.connection对象调用.open()方法时,该错误几乎总是由连接字符串错误引起的。

例如,采取以下的代码:

Dim SqlUsername : SqlUsername = "YOURSQLUSERNAME" 
Dim SqlPassword : SqlPassword = "YOURSQLPASSWORD" 
Dim ConnectionString : ConnectionString = "DRIVER={SQL Server};SERVER=YOURSERVERNAME;DATABASE=YOURDATABASENAME;UID=" & SqlUsername & ";PWD=" & SqlPassword 
Dim db 
Set db = Server.CreateObject("ADODB.Connection") 
db.Open ConnectionString , SqlUsername , SqlPassword 

注连接字符串如何包括驱动器识别符,在该示例中是SQL Server中。

在应用程序的某个位置,您将有一个adodb.connection.open()方法被连接字符串调用,您需要找到它,确定正在使用的驱动程序并将其安装到您的服务器上。

另一件事要记住,有些数据源驱动程序是32位的,如果你运行你的网站在IIS中的64位应用程序池,你需要让32位对象 - 看到上此相关的问题:Uploading picture after migration from IIS 6.0 to IIS 7.5

您的旧服务器定义了一些ODBC DSN(数据源名称),这就是您的应用程序连接到数据库的方式。你需要在你的新服务器上定义这些。查看您的服务器的控制面板。

我在使用经典asp和IBM DB2 ODBC Driver时遇到了类似的问题。我有两个网站配置在我的本地IIS 7.5,Connection.Open工作正常,但默认的网站,但它不与第二个网站,根据我的知识和根据每个从* sugesions几次配置更改没有帮助我在这个案件。

对我来说有效的是启用(设为True)32bit应用程序高级设置ASP.NET V4.0经典应用程序池。

Application Pools-->ASP.NET V4.0 Classic--> 
      Advanced Settings--> under General Options double click Enable 32-bit Applications to set to True. 

这个小配置可能会帮助有同样问题的人。

+0

这是我的解决方案感谢您发布您的建议 – Fuzzybear

找不到驱动程序,因为这些驱动程序没有在系统中配置或注册,当我在本地主机上运行一个asp页面网站时,我也得到了这样的错误。同一页面在主机服务器上平稳运行。 要注册,请转到Microsoft ODBC Administrator - >系统DSN选项卡 - >单击'configure'按钮添加您的驱动程序。希望这可以帮助。

对我来说,这只是一个失踪的“;”在连接字符串的数据库名称后

可以肯定现在你已经解决了你的问题,但尽管如此,这里的知识的目的就是可以工作:

在什么@webaware说请按照下面的步骤您的新服务器上顶:

  1. 进入控制面板
  2. 管理工具
  3. 数据源(ODBC)
  4. 单击系统DSN选项卡
  5. 单击添加按钮
  6. 在客户端驱动程序中查找并选择Oracle。
  7. 现在,在数据源名称,描述,TNS服务名称和用户ID

注:向正确的TNS服务名和用户ID数据库管理员。您还需要用户ID来测试您的连接。

  1. 点击测试连接按钮
  2. 输入您的TNS服务名称为服务名称,用户ID作为用户名和用户的口令ID
  3. 单击确定按钮
  4. 你现在连接应该是成功的。

开始=“8”>