我注意到,如果我在构建连接字符串时不提供端口,我仍然可以通过看起来像[server] [server] [instance_name]的命名实例连接到SQL Server。
sqlclient自动为我收集端口号吗?即使实例是默认实例,我是否也必须关注端口号?
我很抱歉这个问题似乎是新手。Google只是没有为我打动任何东西。
谢谢!
要牢记的一件事是,如果您在同一计算机上安装了多个实例的SQL Server,则每个实例将使用不同的随机端口号(尽管,但特定的端口号可以使用SQL Server Configuration Manager指定端口号,右键单击Service& Select属性)。
如果您通过实例名称连接,并且SQL Server浏览器服务正在运行,则将所有请求自动重定向到适当的端口。
要记住的另一件事是,SQL Server的Express Edition(即免费版本)默认情况下不会启用TCP/IP协议。我知道这是SQL Server较旧版本的行为,但这可能已经在更新版本中更改。
通常是SQL Server在1433上听的默认端口,因此您不需要在连接字符串中指定端口号。
有一篇不错的文章提供了有关该主题的更多信息:
http://benchmarkitconsulting.com/colin-stasiuk/2009/02/02/what-tcp-port-port-is-sql-sql-server-server-running-under/