SQL Server 2008 OLE DB连接从外部失败

时间:2012-02-21 12:57:55

标签: connection oledb sql-server-express sql-server-2008r2-express

我在云计算机上的Windows 2008服务器上安装了有效的SQL Server 2008 R2 Express。除了OLEDB之外,来自多个客户端应用程序的所有类型的连接(ado.net,nhibernate等)都可以正常工作。 SQL Native Client也可以正常工作。

当我尝试从本地服务器连接并作为数据源写入实例名称时,一切正常。但是从外面来看,我遇到了问题,或者如果我写的是万能或者dns,我也有问题来自当地。

-- works perfect from everywhere
Provider=SQLNCLI10;Data Source=mntek.no-ip.org;User ID=xxx;Password=xxx; 

-- does not work from anywhere
Provider=SQLOLEDB.1;Data Source=mntek.no-ip.org;User ID=xxx;Password=xxx;

-- works only from local
Provider=SQLOLEDB.1;Data Source=flz001\sqlexpress;User ID=xxx;Password=xxx;
  

错误:[DBNETLIB] [ConnectionOpen(Invalid Instance())。无效   连接。

-- works perfect with ado.net
Data Source=mntek.no-ip.org;User ID=xxx;Password=xxx

其他一些客户端应用程序(不是我的)使用oledb连接编写,所以我需要它们将db连接到oledb提供程序。

有什么想法吗?

此致 梅特

1 个答案:

答案 0 :(得分:6)

自从被问到这个问题已经有一段时间了,但我目前正在解决与OLE DB和SQL Server相关的问题,听起来可能与此有关。

我发现,即使服务器使用默认端口(1433),我仍然必须在UDL连接字符串中明确指定它,如下所示:

Provider=SQLOLEDB.1;User ID=USER;Data Source=IP,1433

我问过为什么这可能是必要的: Why might SQL Server 2008 OLE DB UDL require port 1433 explicitly specified?

也许尝试一下,看看它是否有帮助。