Choix d'un canal
L'infrastructure de .NET Framework Remoting fournit les implémentations de canal suivantes :
IpcChannel
La classe IpcChannel utilise des canaux nommés pour fournir une communication entre processus très rapide pour plusieurs applications de processus sur le même ordinateur. IpcChannel :
Communique entre l'expéditeur et le destinataire en utilisant des canaux nommés.
Prend en charge des charges de codage au format binaire et au format de sérialisation SOAP (norme industrielle).
Génère et consomme ChannelDataStore pour des références d'objet.
Prend en charge l'emprunt d'identité et la délégation.
Prend en charge les listes de contrôle d'accès (ACL, Access Control Lists) sur le canal nommé pour un contrôle d'accès avancé.
Utilise IpcChannel lorsqu'une application doit communiquer avec une autre application qui s'exécute sur un autre processus sur le même ordinateur. IpcChannel utilisant des canaux nommés, les applications peuvent en règle générale obtenir les meilleures performances en terme de communication et utiliser 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 la deuxième et la troisième couche d'une application à trois couches devant être performante en situation de charge.
TcpChannel
La classe TcpChannel utilise un formateur binaire pour sérialiser tous les messages dans un flux binaire et transporter le flux vers l'URI (Uniform Resource Identifier) cible à l'aide du protocole TCP. TcpChannel exécute les fonctions suivantes :
Communique entre l'expéditeur et le destinataire en utilisant des sockets TCP.
Prend en charge des charges de codage au format binaire et au format de sérialisation SOAP (norme industrielle).
Génère et consomme ChannelDataStore pour des références d'objet.
Prend en charge l'emprunt d'identité et la délégation.
Prend en charge le chiffrement SSPI.
TcpChannel ouvre et met en cache autant de connexions qu'il existe de threads effectuant des demandes à un autre serveur à ce moment donné. Les connexions du 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, vous pouvez facilement utiliser HttpChannel par erreur pour vous connecter à un domaine d'application serveur qui écoute à l'aide de 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 vous avez un client qui reçoit cette exception, vous devez vérifier s'il n'y a pas de canaux incompatibles entre le client et le serveur
HttpChannel
La classe HttpChannel transporte les messages vers des objets distants et à partir de ces derniers à l'aide du protocole SOAP. Tous les messages passent via SoapFormatter qui les convertit au format XML et les sérialise ; les en-têtes SOAP requis sont ajoutés au flux. 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. HttpChannel est conforme à SOAP 1.1 et exécute les fonctions suivantes :
Communique entre l'expéditeur et le destinataire à l'aide du protocole HTTP comme transport.
Prend en charge des charges de codage en SOAP, qui est un standard de codage XML, ainsi qu'au format binaire.
Configure le destinataire pour qu'il reçoive les demandes HTTP et envoie les réponses HTTP dans ASP.NET et sur un socket TCP.
Génère et consomme ChannelDataStore pour des références d'objet.
Prend en charge l'emprunt d'identité et la délégation.
Prend en charge le chiffrement SSPI.
Notes
Pour utiliser HttpChannel sur le client avec Microsoft Internet Explorer, vous ne pouvez pas définir la configuration automatique des paramètres proxy dans Internet Explorer. Vous devez au contraire définir explicitement les paramètres proxy dans Internet Explorer.
HttpChannel n'établit qu'un nombre spécifié de connexions à la fois à un serveur donné. La valeur par défaut est 2, mais vous pouvez utiliser l'attribut clientConnectionLimit dans un fichier de configuration d'application pour changer le nombre de connexions par défaut.
Si vous générez plusieurs applications qui utilisent .NET Framework Remoting, vous pouvez facilement utiliser HttpChannel par erreur pour vous connecter à un domaine d'application serveur qui écoute à l'aide de 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 vous avez un client qui reçoit cette exception, vous devez vérifier s'il n'y a pas de canaux incompatibles entre le client et le serveur
Voir aussi
Référence
HttpChannel
TcpChannel
IpcChannel