Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iis ODBC驱动程序的OLE DB提供程序错误“;80004005';_Iis_Asp Classic_Odbc_Oledb - Fatal编程技术网

Iis ODBC驱动程序的OLE DB提供程序错误“;80004005';

Iis ODBC驱动程序的OLE DB提供程序错误“;80004005';,iis,asp-classic,odbc,oledb,Iis,Asp Classic,Odbc,Oledb,我必须将一些客户站点从一个非常旧的IIS服务器移动到一个更新的服务器,并且一些站点在以正确的方式工作时遇到问题。他们中的大多数人抱怨一种叫做: 用于ODBC驱动程序的Microsoft OLE DB提供程序错误“80004005” 未找到[Microsoft][ODBC驱动程序管理器]数据源名称,也未指定默认驱动程序 我在互联网上读到,这可能取决于给用户的权利缺失;其他网站声明缺少临时文件夹(我无法想象这是正确的)…还有其他几种“解决方案”: 打开服务器上每个人的权限(如某人所说)对我来说不是一

我必须将一些客户站点从一个非常旧的IIS服务器移动到一个更新的服务器,并且一些站点在以正确的方式工作时遇到问题。他们中的大多数人抱怨一种叫做:

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

未找到[Microsoft][ODBC驱动程序管理器]数据源名称,也未指定默认驱动程序

我在互联网上读到,这可能取决于给用户的权利缺失;其他网站声明缺少临时文件夹(我无法想象这是正确的)…还有其他几种“解决方案”:

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


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

当调用
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位对象—请参阅此相关问题:

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

在使用经典asp和
IBM DB2 ODBC驱动程序时,我遇到了类似的问题。我的本地
IIS 7.5
,Connection中配置了两个网站。Open在默认网站上运行良好,而在根据我的知识和stackoverflow的建议进行了几次配置更改后,第二个网站则没有。在这种情况下,Open对我没有帮助

对我来说,有效的方法是启用(设置为True)ASP.NET V4.0的
32位
applications高级设置

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

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

找不到驱动程序,因为这些驱动程序没有在系统中配置或注册,我在localhost中运行asp页面网站时也遇到了这样的错误。同一页在主机服务器中运行顺利。
要注册,请单击“配置”按钮,转到Microsoft ODBC管理员->系统DSN选项卡->添加驱动程序。希望这能有所帮助。

对我来说,连接字符串中数据库名称后缺少“;”现在您肯定已经解决了问题,但出于知识的目的,以下是可行的方法:

除了@webaware所说的之外,请在新服务器上执行以下步骤:

  • 转到控制面板
  • 管理工具
  • 数据源(ODBC)
  • 单击系统DSN选项卡
  • 单击添加按钮
  • 在客户端中查找并选择Oracle驱动程序
  • 现在输入数据源名称、描述、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驱动程序)

    更改此项:

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


    请确保将连接代码放在页面的顶部和底部。已修复我的问题,但出现此错误。

    这与权限无关。您可能正在定义显式引用特定版本的mysql ODBC驱动程序的数据库连接


    您必须更新连接字符串。

    这是我的解决方案,谢谢您发布建议
    Conn.Open "DRIVER={MySQL ODBC **5.3 Unicode Driver**};SERVER=localhost; DATABASE=psa; UID=admin;PASSWORD=mypassword;Port=8306; OPTION=3"