11

Provider=SQLOLEDB在我的连接字符串中使用时,我能够连接到 SQL Server 2008 R2 。但是当我Provider=SQLNCLI在连接字符串中使用时,我无法连接。

ADODB.Connection 错误“800a0e7a”

找不到提供者。它可能没有正确安装。

/test.asp,第 7 行

里面写的代码test.asp如下

<%
    Set cn = Server.CreateObject("ADODB.Connection")

    'Doesn't work
    cn.Open "Provider=SQLNCLI;Server=remoteServer\SQL2008R2;Database=DB;UID=MyUser;PWD=pa55word;"  

    'Works Perfectly
    'cn.Open "Provider=SQLOLEDB;Server=remoteServer\SQL2008R2;Database=DB;UID=MyUser;PWD=pa55word;" 

    cn.CommandTimeout = 900
    cn.Close
    Response.write("dfjslkfsl")
%>

我尝试连接的 SQL Server(来自 Windows 7 上的 IIS 7 中的经典 ASP 页面)位于我使用 VPN 连接到的不同网络中的不同服务器上。

我通过从 ODBC 数据源管理员创建与所述 Sql server 2008 R2(通过 VPN 连接)的 sql native 客户端系统 DSN 连接来测试 sql native 客户端。并且连接成功。

这些快照来自我的 Windows 7 系统 Appwiz.cpl 快照

IIS 7 功能

在此处输入图像描述

  • Windows 7的
  • IIS 7
  • 经典 ASP 页面 (.asp)
4

4 回答 4

15

尝试将提供者更改为sqlncli10

cn.Open "Provider=SQLNCLI10;Server=remoteServer\SQL2008R2;Database=DB;UID=MyUser;PWD=pa55word;"

也许您的机器上的名称不同。:)

于 2011-03-11T19:10:40.090 回答
4

对于仅安装了 Visual Studio 2012 的用户,我可以在我全新安装的系统上使用Provider=SQLNCLI11as is not available for me。SQLNCLI10

cn.Open "Provider=SQLNCLI11;Server=remoteServer\SQL2008R2;Database=DB;UID=MyUser;PWD=pa55word;"
于 2012-10-11T06:42:55.140 回答
0

这可能与 VPN 事实有关。也许该应用程序充当了无法访问 VPN 的不同用户。

尝试关闭 IIS 中的匿名身份验证和/或使应用程序池身份与您用于登录 Windows 7 计算机的用户相同,看看这是否能解决问题。

于 2011-03-07T05:33:37.743 回答
-2

工作得很好:

"Provider=SQLNCLI;Server=xxxxxxxx;uid=sa;pwd=xxxxxx;database=xxxxxx;"
于 2015-07-13T10:05:57.030 回答