为什么SQL Server 2008 OLE DB UDL要求显式指定端口1433? [英] Why might SQL Server 2008 OLE DB UDL require port 1433 explicitly specified?

查看:127
本文介绍了为什么SQL Server 2008 OLE DB UDL要求显式指定端口1433?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在生产环境中,我发现必须为用于SQL Server的Microsft OLE DB提供程序" UDL显式指定端口1433.像这样:

In a production environment, I found that port 1433 must be explicitly specified for a "Microsft OLE DB Provider for SQL Server" UDL. Like this:

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

没有指定端口,错误是:

Without the port specified, the error is:

 Test connection failed because of an error in initializing provider.
 [DBNETLIB][ConnectionOpen (Invalid Instance()).]Invalid connection.

相同的环境,但是SQL Native Client 10.1不需要显式指定的1433:

Same environment, but SQL Native Client 10.1, does not require 1433 explicitly specified:

Provider=SQLNCLI10.1;Integrated Security="";Persist Security Info=False;
User ID=USER;Data Source=IP;...

针对开发SQL Server进行相同的测试,OLE DB UDL 需要指定的默认端口.

Same test against a development SQL Server, OLE DB UDL does not require the default port specified.

在什么情况下可能需要显式指定默认端口?

Under what circumstances might it be necessary to explicitly specify the default port?

生产系统是群集的,具有一个主主动和次要被动,以及一个与之建立连接的群集服务器.开发环境只是单个SQL Server2008.我不知道其他任何区别.如果您认为这起作用了,那为什么会那么重要?

The production system is clustered, with a primary active and secondary passive, and a cluster server to which the connections are made. Development environment is just single SQL Server 2008. I don't know of any other differences. If you think this plays into it, why might that matter?

SQL Server的客户端(已创建UDL): Windows Server 2008 R2标准 MDAC 2.8

Client to SQL Server (where UDL was created): Windows Server 2008 R2 Standard MDAC 2.8

所有SQL数据库服务器: Microsoft SQL Server 2008(SP1)-10.0.2734.0(X64) Windows Server Enterprise Service Pack 2

All SQL Database Servers: Microsoft SQL Server 2008 (SP1) - 10.0.2734.0 (X64) Windows Server Enterprise Service Pack 2

在此先感谢您的帮助.

推荐答案

这是群集特有的已知问题.原因是群集管理器将在一个IP/端口上应答,然后将通信切换到实际的(物理)服务器,该服务器可能在另一个端口上进行通信.看来可能没有修复程序,但是您已经找到了解决方法.
有关更多信息,请查看此Microsoft Technet文章: http://support.microsoft.com/kb/318432

This is a known problem that is unique to clustering. The reason is that the cluster manager will answer on one IP/port and then hand-off communications to the actual(physical) server, which may communicate on a different port. It looks like there might not be a fix, but you have already found the workaround.
For more info, check out this Microsoft Technet article: http://support.microsoft.com/kb/318432

这篇关于为什么SQL Server 2008 OLE DB UDL要求显式指定端口1433?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆