Sql server SQL Server客户端别名不工作

Sql server SQL Server客户端别名不工作,sql-server,connection-string,alias,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 目标是将此应用程序转发到具有特定端口的新服务器名称。 我已经创建了alias,但它不工作,应用程序继续使用旧服务器 然而,如果删除部分网络库=DBMSSOCN(我在测试应用程序中

旧式vb6应用程序使用硬编码连接字符串,如

Provider=SQLOLEDB.1;User ID=USER_NAME;password=USER_PASSWORD;Initial Catalog=DB_NAME;Data Source=OLD_SERVER_NAME;Network Library=DBMSSOCN
目标是将此应用程序转发到具有特定端口的新服务器名称。 我已经创建了alias,但它不工作,应用程序继续使用旧服务器

然而,如果删除部分
网络库=DBMSSOCN
(我在测试应用程序中做了) 一切正常


是否有可能使其与原始连接字符串一起工作?

默认TCP/IP端口为1433,但这是可配置的。这里有一个逐步的步骤(希望)至少能解决你所面临的部分问题。

至于您的别名,您可以确保它是在客户机上创建的,而不是在sql server上创建的。(并不是说你做错了什么,但我有时会看到那个错误…)
DBMSSOCN指用于连接的。在本例中,使用TCP/IP。可以为命名管道、TCP/IP和VIA配置别名。删除
DBMSSOCN
设置时,它会返回到命名管道,而不是TCP/IP。确保两件事(都在SQL Server Configuration Manager的32位和64位SQL本机客户端配置部分中):

  • 在客户端协议下,确保启用了TCP/IP

  • 在“别名”下,确保创建的别名用于连接字符串指定的特定网络库。在您的情况下,使用TCP/IP

您可能需要在应用服务器上安装SQL本机客户端10.0,并更改连接字符串以使用该版本的客户端,然后才能正常工作。要安装新客户机,您需要安装SQL Server 2008安装中的。新连接字符串可能如下所示(示例为来自的标准安全性):


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


是的,我在客户端以及x64和x86配置上都做了。我只是想知道,为什么alias在连接字符串中没有“networklibrary=DBMSSOCN”部分的情况下工作,而在其他情况下则不工作。问题是我无法轻松修改遗留应用程序并删除此部分。我不明白为什么会有这样的效果。alias没有问题。在我的测试应用程序中,我也有同样的问题-它在没有提到的部分的情况下工作,并且停止使用它。它很容易复制。你能澄清一下你使用的是什么版本的SQL Server吗?旧版本是2000,新版本是2008 Enterprise(64位),我使用的是“SQL Server客户端网络实用程序”。TCP/IP已启用,alias正在使用TCP/IP。同样,如果我删除了提到的部分,alias将正常工作。Process Monitor仅显示TCP/IP连接。这可能是一个愚蠢的问题,但您是在应用程序所在的服务器上创建别名,还是在数据库服务器上创建别名?在应用程序服务器上。数据库服务器位于不同的框中。所以,总结一下:app+短连接字符串+别名->新建服务器;应用程序+长连接字符串+别名->旧服务器。就像这部分内容迫使应用程序完全忽略alias一样。以前它是服务器的默认实例,而不是在特定端口上命名的。Alias使用服务器名+端口。我想知道您是否需要使用应用程序服务器上的来通过OLE正确连接到SQL 2008 box。
Provider=SQLNCLI10;Server=ServerAlias;Database=myDataBase;Uid=myUsername;Pwd=myPassword
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"