SQL Server通信协议问题

时间:2009-10-19 04:58:49

标签: c# .net sql-server-2008 visual-studio-2008 ado.net

我正在使用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; Asynchronous

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

2 个答案:

答案 0 :(得分:5)

根据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本身,因此服务器端设置显然没有意义。

马克

答案 1 :(得分:2)

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

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

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