SQL Server客户端别名不起作用

时间:2011-09-21 23:42:59

标签: sql-server connection-string alias

旧版vb6应用程序使用类似

的硬编码连接字符串
Provider=SQLOLEDB.1;User ID=USER_NAME;password=USER_PASSWORD;Initial Catalog=DB_NAME;Data Source=OLD_SERVER_NAME;Network Library=DBMSSOCN

目标是将此应用程序转发到具有特定端口的NEW_SERVER_NAME。 我已经创建了别名,但它无法正常工作,应用程序继续使用旧服务器。

但是如果删除部分Network Library=DBMSSOCN(我在测试应用程序中做了) 一切正常。

是否有机会使其与原始连接字符串一起使用?

3 个答案:

答案 0 :(得分:1)

默认的TCP / IP端口是1433,但这是可配置的。这是一个循序渐进的(希望)至少解决你所面临的问题的那一部分。 http://msdn.microsoft.com/en-us/library/ms177440.aspx

至于别名,您可以确保在客户端而不是sql-server上创建了它。 (不是说你做错了什么,但我有时会看到这个错误...) http://support.microsoft.com/kb/289573

答案 1 :(得分:1)

DBMSSOCN是指用于连接的network library。在这种情况下,TCP / IP。可以为命名管道,TCP / IP和VIA配置别名。删除DBMSSOCN设置后,它将回退到命名管道而不是TCP / IP。确保两件事(在32位和64位SQL Native Client配置部分下的SQL Server配置管理器中):

  • 在“客户端协议”下,确保已启用TCP / IP。

Client Protocols

  • 在别名下,确保您创建的别名是针对您的连接字符串指定的特定网络库。在您的情况下,TCP / IP。

Alias - New Window

您可能需要在应用程序服务器上安装SQL Native Client 10.0,并在此之前更改连接字符串以使用该版本的客户端。要安装新客户端,您需要安装SQL Server 2008安装中的SQL Server Tools。新连接字符串可能如下所示(示例是来自ConnectionStrings.com的标准安全性):

Provider=SQLNCLI10;Server=ServerAlias;Database=myDataBase;Uid=myUsername;Pwd=myPassword

答案 2 :(得分:0)

cliconfg.exe可用于在64b机器上运行时配置客户端别名,只为64b程序创建条目;如果您没有sql工具并且想要为32和64b程序创建别名,请在注册表中创建以下条目(下面是带有TCP别名的reg文件的内容):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo]
"oldserver\\oldinstance"="DBMSSOCN,newserver\\newinstance"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSSQLServer\Client\ConnectTo]
"oldserver\\oldinstance"="DBMSSOCN,newserver\\newinstance"