SQL Server通信协议问题

我正在使用VSTS 2008 + C#+ ADO.Net + SQL Server 2008.我对SQL Server 2008将使用哪种通信协议的问题,我的问题的更多细节,

  1. 如果连接字符串如下所示,是使用命名管道还是TCP / IP? 是否会使用不同的通信协议取决于客户端和SQL Server是否在同一台机器上?

    Data Source = labtest1; Initial Catalog = CustomerDB; Trusted_Connection = true;异步

  2. 在SQL Server配置管理器中,有一些项称为“SQL Server网络配置”和“SQL Native Client 10.0配置”。 我发现它们都有命名管道或TCP / IP的配置选项(用于通信协议),“SQL Server网络配置”和“SQL Native Client 10.0配置”之间有什么区别?

根据SQL Server 2008联机丛书,这是发生的事情:

在服务器上本地连接

从本地客户端连接到数据库引擎(客户端应用程序和SQL Server在同一台计算机上)时,默认情况下连接使用共享内存协议 。 SQL Server Native Client接受以下任何格式,以使用共享内存协议在本地连接:

  • “”
  • “\”表示命名实例“(local)”
  • “(本地)\”表示命名实例
  • “本地主机”
  • 命名实例的“localhost”
  • 单个句号“。”
  • “。\”表示命名实例

要使用其他协议进行本地连接(用于故障排除),请在启用协议的情况下执行以下操作之一:

  • 连接到指定协议的客户端别名。 有关详细信息,请参阅SQL Server配置管理器帮助中的“别名”。
  • 使用协议作为计算机名称的前缀(例如,“np:”或“tcp:”)。
  • 连接到导致TCP / IP连接的IP地址。
  • 连接到完全限定的域名(FQDN),从而产生TCP / IP连接(例如,“..com”

通过网络连接

默认情况下,SQL Server客户端的默认协议是TCP / IP 。 如果无法使用TCP / IP建立连接,则尝试使用其他已启用的协议。 无法通过网络建立共享内存连接。 使用SQL Server配置管理器启用或禁用客户端协议,并更改连接尝试的顺序。

在Sql Server配置管理器中,您可以定义客户端协议的顺序 – 我会假设客户端尝试连接到SQL Server的顺序。 将使用服务器支持的第一个协议。

AS配置实用程序:

  • SQL Server网络配置是关于在服务器端配置网络协议的
  • SQL Native Client Configuration是客户端配置

如果你有一个开发盒,两者都有,你会看到两者。 连接到SQL Server的常规PC通常本地没有安装SQL Server本身,因此服务器端设置显然没有意义。

SQL Server Native Client Configuration中配置的设置在运行客户端程序的计算机上使用。 在运行SQL Server的计算机上配置时,它们仅影响服务器上运行的客户端程序。

计算机上的Microsoft SQL Server客户端使用SQL Server Native Client库文件中提供的协议与SQL Server服务器进行通信。

请记住,Microsoft .NET SqlClient不使用这些设置。 .NET SqlClient的协议顺序是TCP,然后是命名管道,无法更改。