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



我必须将一些客户网站从一个非常旧的IIS服务器移动到一个较新的服务器,并且一些网站在正确的方式下工作有麻烦。他们中的大多数人抱怨的失败叫做:

Microsoft OLE DB Provider for ODBC Drivers错误'80004005'

[Microsoft][ODBC Driver Manager]数据源名称未找到,未指定默认驱动程序。

我在网上看到,这可能取决于用户缺少的权利;其他网站说临时文件夹丢失了(我无法想象这是对的)…还有其他几个"解决方案":

为服务器上的每个人打开权限(如某人所说)对我来说不是一个选项。此外,给每个客户明确的权利是非常痛苦的(有几个客户需要这些权利)。

你知道一个更简单的解决方案,一个类似的方法,或者一个替代方案吗?

我在使用经典asp和IBM DB2 ODBC Driver时遇到了类似的问题。我确实有两个网站配置在我的本地IIS 7.5,连接。开放的工作很好与默认的网站,而不是与第二个网站,根据我的知识和根据stackoverflow的建议几次配置更改后,在这种情况下没有帮助我。

对我有用的是启用(设置为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.

这个小配置可以帮助那些有同样问题的人。

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位对象-看到这个相关的问题:从IIS 6.0迁移到IIS 7.5后上传图片

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

现在你肯定已经解决了你的问题,但是出于知识的目的,这里是可以工作的:

除了@webaware所说的,请在您的新服务器上遵循以下步骤:

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

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

  • 点击测试连接按钮
  • 输入您的TNS服务名称作为服务名称,用户ID作为用户名和用户ID的密码
  • 点击Ok按钮
  • 您的连接现在应该成功了。

    我在更新控制面板Plesk 12.5到Plesk Onyx 17.5.3之后遇到了同样的问题,并看到更新的ODBC驱动程序到5.3。

    为了解决这个问题,我将连接字符串中的(5.1)改为(5.3 Unicode Driver)。

    修改:

    Conn.Open "DRIVER={MySQL ODBC 5.1 };SERVER=localhost; DATABASE=psa; UID=admin;PASSWORD=mypassword;Port=8306; OPTION=3"
    

    :

    Conn.Open "DRIVER={MySQL ODBC **5.3 Unicode Driver**};SERVER=localhost; DATABASE=psa; UID=admin;PASSWORD=mypassword;Port=8306; OPTION=3"
    

    确保将连接代码放置在页面的顶部而不是底部。这解决了我的问题,这个错误。

    没有找到驱动程序,因为这些驱动程序没有在系统中配置或注册,当我在localhost中运行asp页面网站时,我也得到了这样的错误。同一页面在主机服务器上运行正常。要注册,请转到Microsoft ODBC Administrator -> SYSTEM DSN选项卡->通过单击"configure"按钮添加驱动程序。希望这对你有所帮助。

    对于我来说,它只是在连接字符串

    数据库名称之后缺少";"。您可以定义数据库连接,显式引用特定版本的mysql ODBC驱动程序。

    你将不得不更新你的连接字符串

    当使用asp经典脚本,MySQL和Plesk控制面板(windows)时,我有同样的错误

    您可以在Plesk中启用32位应用程序:

    转到Plesk控制面板=>举办,DNS =比;网站专用IIS应用程序池=>启用32位应用

    相关内容

    最新更新