Partager via


Inscription de 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).

Dans le système .NET Remoting, les objets canaux assurent le transport des données lorsqu'un client appelle une méthode pour un objet distant. Le service distant peut prendre en charge plusieurs canaux, et il appartient à l'application cliente de choisir le canal qui répond le mieux à ses besoins. Si vous ne spécifiez pas un canal dans votre fichier de configuration client et si votre client appelle une méthode pour un objet distant, l'une des implémentations de canal par défaut (HttpChannel ou TcpChannel) sera chargée par le système .NET Remoting si elle prend en charge le protocole réseau du client. Cependant, si le client attend des événements ou des fonctions de rappel, vous devez spécifier un canal de client pour être à l'écoute de cette fonction de rappel.

Vous pouvez inscrire un canal de deux façons. Soit vous déclarez un modèle de canal, puis vous faites référence à ce canal dans votre application, soit vous spécifiez toutes les informations concernant le canal directement dans votre application. Les modèles de canaux par défaut dans le fichier Machine.config devraient suffire pour la plupart des applications et peuvent être balisés à partir de la balise <channels> (dans la balise <application>) en utilisant l'attribut ref de la balise <channel> et en spécifiant « tcp » ou « http ». Il est inutile de spécifier un attribut port lorsque vous utilisez HttpChannel, mais vous devez en spécifier un lorsque vous utilisez TcpChannel.

Si votre application expose un objet serveur, vous devez inscrire un canal de façon que les applications clientes puissent communiquer avec votre objet. Vous pouvez réaliser cette opération par programme en utilisant la méthode ChannelServices.RegisterChannel ou en inscrivant le canal dans le fichier de configuration.

Si votre application consomme des objets, vous devez inscrire un canal qui sait comment y accéder (ceci est obligatoire dans tous les cas sauf si vous prévoyez d'être à l'écoute des événements ou des fonctions de rappel) sauf si l'objet service utilise l'un des canaux clients par défaut répertoriés dans le fichier de configuration machine.

Pour des exemples détaillés, consultez Exemple de communication à distance : fournisseur de récepteur de canal (page pouvant être en anglais), l'élément d'instance <channel> et l'élément de modèle <channel>.

Récepteurs de canaux

Les récepteurs de canaux permettent aux développeurs de personnaliser la sérialisation et le transport des messages entre le client et les services distants. Les récepteurs de canaux sont créés par des fournisseurs de récepteurs, et aussi bien les fournisseurs de récepteurs clients que les fournisseurs de récepteurs serveur peuvent être spécifiés dans le fichier de configuration. Les récepteurs de canaux du serveur sont appelés lorsque des messages sont échangés avec le serveur, et ils sont spécifiés dans l'élément <serverProviders>. Les récepteurs clients sont appelés lorsque des messages sont échangés avec le client et sont spécifiés dans l'élément <clientProviders>.

Les canaux doivent avoir un récepteur de formateur. Les récepteurs de formateurs sérialisent un message. Le .NET Framework inclut des formateurs pour la sérialisation binaire et SOAP.

Il importe de noter qu'une fois que vous spécifiez un formateur personnalisé, le système .NET Remoting suppose que vous spécifierez tous les canaux dans l'ordre que vous choisissez. Dès lors, si vous déclarez un canal personnalisé qui utilise un formateur personnalisé, vous devez également spécifier les autres fournisseurs qui doivent figurer dans la chaîne du récepteur de canal. Aucun récepteur de canal par défaut ne sera ajouté.

Voir aussi

Tâches

Comment : créer un modèle de canal dans un fichier de configuration

Référence

System.Runtime.Remoting.RemotingConfiguration Class

Concepts

Configuration d'applications distantes
Configuration d'objets distants

Autres ressources

Inscription d'objets distants à l'aide de fichiers de configuration
Vue d'ensemble de .NET Framework Remoting
Vue d'ensemble de .NET Framework Remoting