1

我使用以下连接字符串在 SQL Server 中建立远程连接:

 "Data Source=" + _databaseIP + "," + _databasePort + ";Network
Library=DBMSSOCN; Initial Catalog=SI_CONFIG; uid=sa;pwd=Password1!"

其中 _databaseIP 和 _databasePort 由用户输入。

但是,虽然 IP 在远程机器上是固定的,但端口最终会发生变化。为了发现服务器正在侦听的实际端口,我查找 ERRORLOG 文件('c:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\Log\ERRORLOG')并搜索“服务器正在侦听 [ 'any' 49167' 告诉我端口,但是,这似乎在几天或几周后随机变化。

我希望端口是固定的,或者使用另一种方式通过服务器连接,这种方式我不再要求用户提供端口。任何建议表示赞赏。谢谢。

4

1 回答 1

1

听起来您的 SQL Server 已配置为使用动态端口。从链接:

为动态端口配置数据库引擎和 SQL Server Compact 的命名实例。这意味着它们会在 SQL Server 服务启动时选择一个可用端口。通过防火墙连接到命名实例时,将数据库引擎配置为侦听特定端口,以便可以在防火墙中打开相应的端口。

要将 SQL 实例配置为使用特定端口,请打开 Sql Server 配置管理器并导航到 Sql Server 网络配置 -> 协议(实例名称)。右键单击TCP/IP,转到 Properties -> IP Addresses 选项卡,然后清除 TCP Dynamic Ports 的所有条目。为要在其上建立连接的每个 IP 地址设置TCP 端口值。保存更改后,需要重新启动 SQL。

于 2013-11-06T14:21:33.453 回答