Partager via


Choix d'un canal

Cette rubrique est spécifique à la technologie héritée assurant la compatibilité descendante avec des applications existantes et n'est pas recommandée en cas de nouveau développement. Les applications distribuées doivent maintenant être développées à l'aide de Windows Communication Foundation (WCF).

L'infrastructure .NET Framework Remoting fournit les implémentations de canal suivantes :

IpcChannel

La classe IpcChannel utilise des canaux nommés pour offrir une communication rapide entre processus aux applications dotées de plusieurs processus sur le même ordinateur. Un IpcChannel :

  • Communique avec l'expéditeur et le récepteur en utilisant des canaux nommés.

  • Prend en charge les charges utiles de codage au format binaire et le format standard de sérialisation SOAP.

  • Génère et consomme ChannelDataStore pour les références d'objet.

  • Prend en charge l'emprunt d'identité et la délégation.

  • Prend en charge des listes de contrôle d'accès (ACL) sur le canal nommé pour un contrôle avancé des accès.

Utilisez un IpcChannel lorsqu'une application doit communiquer avec une autre application qui s'exécute dans un processus différent sur le même ordinateur. Comme IpcChannel utilise des canaux nommés, les applications obtiennent généralement les meilleures performances de communication et utilisent l'emprunt d'identité et la délégation pour contrôler l'accès à l'objet distant. Cette fonctionnalité est particulièrement utile entre les deuxième et troisième couches d'une application composée de trois couches qui doit fonctionner correctement en pleine charge.

TcpChannel

La classe TcpChannel utilise un formateur binaire pour sérialiser tous les messages en un flux binaire et pour transporter le flux de données à l'URI (Uniform Resource Identifier) cible à l'aide du protocole TCP. Un TcpChannel exécute les fonctions suivantes :

  • Communique avec l'expéditeur et le récepteur en utilisant des sockets TCP.

  • Prend en charge les charges utiles de codage au format binaire et le format standard de sérialisation SOAP.

  • Génère et consomme ChannelDataStore pour les références d'objet.

  • Prend en charge l'emprunt d'identité et la délégation.

  • Prend en charge le chiffrement SSPI.

Un TcpChannel s'ouvre et met en cache autant de connexions qu'il y a de threads effectuant des demandes à un autre serveur à ce moment. Les connexions de socket sont fermées sur le client après 15 à 20 secondes d'inactivité.

Si vous générez plusieurs applications qui utilisent .NET Framework Remoting, il peut être facile d'utiliser par erreur un HttpChannel pour se connecter à un domaine d'application serveur qui écoute avec un TcpChannel. Si vous établissez cette connexion, le client reçoit l'exception suivante : « La connexion sous-jacente a été fermée : Une erreur inattendue s'est produite lors de la réception. » Si un client reçoit cette exception, vous devez vérifier le client et le serveur afin de trouver des canaux incompatibles.

HttpChannel

La classe HttpChannel transporte des messages vers et à partir d'objets distants en utilisant le protocole SOAP. Tous les messages sont passés à travers un SoapFormatter, où le message est changé en XML et sérialisé. Les en-têtes SOAP requis sont ajoutés au flux de données. Si le formateur binaire est également spécifié, un flux de données binaire est créé. Le flux de données est ensuite transporté vers l'URI cible à l'aide du protocole HTTP. Un HttpChannel est conforme à SOAP 1.1 et exécute les fonctions suivantes :

  • Communique avec l'expéditeur et le récepteur en utilisant le protocole HTTP comme moyen de transport.

  • Prend en charge des charges utiles de codage dans SOAP, qui est un standard de codage XML, ainsi que le format binaire.

  • Définit le récepteur de façon à ce qu'il reçoive des requêtes HTTP et envoie des réponses HTTP dans ASP.NET et sur un socket TCP.

  • Génère et consomme ChannelDataStore pour les références d'objet.

  • Prend en charge l'emprunt d'identité et la délégation.

  • Prend en charge le chiffrement SSPI.

4b3scst2.note(fr-fr,VS.100).gifRemarque :
Pour utiliser un HttpChannel sur le client avec Microsoft Internet Explorer, ne sélectionnez pas la configuration automatique des paramètres de proxy. Vous devez définir explicitement les paramètres de proxy dans Internet Explorer.

Un HttpChannel n'ouvre qu'un nombre spécifié de connexions à la fois vers un serveur donné. La valeur par défaut est deux, mais vous pouvez utiliser l'attribut clientConnectionLimit dans le fichier de configuration de l'application pour modifier la valeur par défaut.

Si vous générez plusieurs applications qui utilisent .NET Framework Remoting, il peut être facile d'utiliser par erreur un HttpChannel pour se connecter à un domaine d'application serveur qui écoute avec un TcpChannel. Dans ce cas, le client reçoit l'exception suivante : « La connexion sous-jacente a été fermée : Une erreur inattendue s'est produite lors de la réception. » Si un client reçoit cette exception, vous devez vérifier le client et le serveur afin de trouver des canaux incompatibles.

Voir aussi

Référence

HttpChannel
TcpChannel
IpcChannel

Concepts

Canaux