2 votes

Problème de protocole de communication du serveur SQL

J'utilise VSTS 2008 + C# + ADO.Net + SQL Server 2008. Mes questions sur les types de protocoles de communication que SQL Server 2008 utilisera, plus de détails sur mes questions,

  1. Si la chaîne de connexion ressemble à ceci, faut-il utiliser Named Pipe ou TCP/IP ? Un protocole de communication différent sera-t-il utilisé selon que le client et le serveur SQL se trouvent sur la même machine ?

    Data Source=labtest1;Initial Catalog=CustomerDB;Trusted_Connection=true;Asynchronous

  2. Dans SQL Server Configuration Manager, il y a des éléments appelés "SQL Server Network Configuration" et "SQL Native Client 10.0 Configuration". Je trouve que les deux ont des options de configuration (pour les protocoles de communication) de Named Pipe ou TCP/IP, quelles sont les différences entre "Configuration du réseau du serveur SQL" et "Configuration du client natif SQL 10.0" ?

6voto

marc_s Points 321990

Selon SQL Server 2008 Books Online, c'est ce qui se passe :

Se connecter localement sur le serveur

Lorsque vous vous connectez au moteur de base de données à partir d'un client local (l'application client et le serveur SQL se trouvent sur le même ordinateur), la connexion utilise les éléments suivants protocole de mémoire partagée par défaut. SQL Server Native Client accepte l'un des formats suivants pour se connecter localement en utilisant le protocole de mémoire partagée :

  • ""
  • "\" pour une instance nommée "(local)".
  • "(local)\" pour une instance nommée
  • "Localhost"
  • "localhost\" pour une instance nommée
  • Un seul point "."
  • ".\" pour une instance nommée

Pour se connecter localement en utilisant un autre protocole (pour le dépannage), effectuez l'une des opérations suivantes avec le protocole activé :

  • Se connecter à un alias client qui spécifie un protocole. Pour plus d'informations, voir "Alias" dans l'aide de SQL Server Configuration Manager.
  • Faites précéder le nom de l'ordinateur du protocole (par exemple, "np :" ou "tcp :").
  • Se connecter à l'adresse IP, ce qui donne lieu à une connexion TCP/IP.
  • Se connecter au nom de domaine pleinement qualifié (FQDN) qui donne lieu à une connexion TCP/IP (par exemple, "..com").

Connexion par le réseau

Par défaut, le protocole par défaut pour les clients SQL Server est TCP/IP . Si la connexion ne peut être établie par TCP/IP, les autres protocoles activés sont tentés. Une connexion à mémoire partagée ne peut pas être établie sur un réseau. Utilisez SQL Server Configuration Manager pour activer ou désactiver les protocoles clients et pour modifier l'ordre dans lequel les tentatives de connexion sont effectuées.

Dans Sql Server Configuration Manager, vous pouvez définir un ordre pour les protocoles du client - je suppose que c'est l'ordre dans lequel le client essaie de se connecter à SQL Server. Le protocole qui est le premier à être pris en charge par le serveur sera utilisé.

AS pour l'utilitaire de configuration :

  • La configuration réseau de SQL Server concerne la configuration des protocoles réseau du côté du serveur.
  • Configuration du client SQL Native est la configuration côté client

Si vous avez une dev box avec les deux, vous verrez les deux. Un PC ordinaire qui se connecte à un serveur SQL n'a généralement pas le serveur SQL lui-même installé sur lui localement, donc les paramètres côté serveur n'ont pas de sens, évidemment.

Marc

3voto

Ehsan Mirsaeedi Points 128

Les paramètres configurés dans SQL Server Native Client Configuration sont utilisés sur l'ordinateur qui exécute le programme client. Lorsqu'ils sont configurés sur l'ordinateur exécutant SQL Server, ils n'affectent que les programmes clients exécutés sur le serveur.

Les clients Microsoft SQL Server sur une machine communiquent avec les serveurs SQL Server à l'aide des protocoles fournis dans le fichier de bibliothèque SQL Server Native Client.

N'oubliez pas que ces paramètres ne sont pas utilisés par le SqlClient de Microsoft .NET. L'ordre des protocoles pour .NET SqlClient est d'abord TCP, puis named pipes, qui ne peut pas être modifié.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X