无法使用 SQL Native Client(Windows 7 - IIS7)从经典 ASP 连接到 SQL Server 2008 R2。

11
我能够使用Provider=SQLOLEDB在连接字符串中连接到SQL Server 2008 R2,但是当我在连接字符串中使用Provider=SQLNCLI时,无法连接。下面是test.asp中的代码:

ADODB.Connection error '800a0e7a'

Provider cannot be found. It may not be properly installed.

/test.asp, line 7

请注意:html标签需要保留。
<%
    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数据源管理员中创建一个与所述通过VPN连接的Sql Server 2008 R2的Sql Native Client系统DSN连接来测试sql native client,并成功连接。
这些快照来自我的Windows 7系统 Appwiz.cpl snap IIS 7 features enter image description here
  • Windows 7
  • IIS 7
  • Classic ASP页面(.asp)

1
这可能会对您有所帮助:http://www.connectionstrings.com/sql-server-2008 - Dee
2
可能听起来有些傻,但你尝试过使用 provider=sqlncli10 吗? - Shadow The Spring Wizard
@Shadow,这不是傻的。它解决了我的问题:)。我在我的代码中有provider=sqlncli。非常感谢。如果你想从我这里获得25个声望点数,你可以把它作为答案。 - IsmailS
谢谢@Ismail,已经完成了。很高兴它起作用了! :) - Shadow The Spring Wizard
我以为SQL 2008是本机客户端10? - BerggreenDK
4个回答

15

尝试将提供程序更改为sqlncli10

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

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


这个答案节省了我大量的时间。 - chrismay
我使用了这个问题和答案来帮助理解在一些Excel VBA代码中从SQLOLEDB切换到SQLNCLI10。现在我的SQL "With"语句可以正常工作了。 - Doug Glancy

4

对于只安装了Visual Studio 2012的用户,可以使用Provider=SQLNCLI11,因为在我的新安装系统中,SQLNCLI10不可用。

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

0

这可能与VPN有关。也许该应用程序会作为一个不具备VPN访问权限的不同用户进行操作。

尝试在IIS中关闭匿名身份验证和/或将应用程序池标识设置为您用于登录Windows 7计算机的相同用户,看看是否可以解决问题。


今晚回家后,我会试试这些好指针。现在我在办公室网络中,使用另一台电脑也能正常运行。 - IsmailS

-2

运行非常完美:

"Provider=SQLNCLI;Server=xxxxxxxx;uid=sa;pwd=xxxxxx;database=xxxxxx;"

1
为什么你在抄袭已被接受的答案(对于多个问题)? - kleopatra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接