Partager via


Proxies personnalisés, exemple de technologie

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

Cet exemple illustre l'extensibilité de la classe RealProxy. En étendant RealProxy, le code utilisateur accède aux messages qui sont transportés vers et à partir de n'importe quel objet distant. L'exemple crée trois fichiers exécutables. L'application ProxyWithReturnMessage.exe se substitue à la méthode Invoke pour afficher les données de message. L'application ProxyWithCustomCasting.exe utilise deux interfaces, IFaq et IBaz, pour illustrer les fonctionnalités de conversion personnalisée. L'application ProxyWiredToHttpChannel.exe montre comment intercepter et transférer l'appel au service RemotingHello par le canal Http.

hzzt6yfe.Important(fr-fr,VS.100).gif Remarque :
Cet exemple exige l'installation préalable d'IIS (Internet Information Services) sur votre ordinateur. Vous devez inscrire le service RemotingHello dans IIS avant d'exécuter les exemples d'application.

Pour générer l'exemple à partir de l'invite de commandes

  1. Ouvrez une fenêtre d'invite de commandes et accédez au sous-répertoire CS.

  2. Tapez msbuild CustomProxiesCS.sln sur la ligne de commande.

    hzzt6yfe.note(fr-fr,VS.100).gifRemarque :
    Cet exemple génère trois applications console. Vous devez les lancer à l'aide de l'invite de commande afin de pouvoir afficher leur sortie.

Pour générer l'exemple à l'aide de Visual Studio

  1. Ouvrez l'Explorateur Windows et accédez au sous-répertoire CS.

  2. Double-cliquez sur l'icône de CustomProxiesCS.sln pour ouvrir le fichier dans Visual Studio.

  3. Dans le menu Générer, choisissez Générer la solution.

Pour inscrire le service dans IIS

  1. Compilez le service sous la forme d'une DLL, puis copiez cette DLL dans un répertoire bin à partir duquel le service sera chargé. La génération de l'exemple à l'aide de l'invite de commande ou de Visual Studio décrite ci-dessus compile le service, crée le sous-répertoire bin sous ProxyWiredToHttpChannel et y copie Hello.dll.

  2. Démarrez le Gestionnaire des services Internet et sélectionnez Site Web par défaut sous le nœud du serveur. Sélectionnez Action, Nouveau, Répertoire virtuel dans le menu et cliquez sur Suivant pour continuer.

  3. Entrez RemotingHello comme alias et cliquez sur Suivant.

  4. Entrez le répertoire où se trouve le service. Entrez le chemin complet jusqu'au répertoire bin (exclus) dans lequel la dll a été copiée à l'étape 1.

  5. Cliquez sur Suivant. Acceptez les valeurs par défaut affichées et cliquez à nouveau sur Suivant. Cliquez sur Terminer. Le service est désormais inscrit et s'affiche dans la liste des sites Web par défaut dans la fenêtre du Gestionnaire des services Internet.

  6. Vérifiez qu'un fichier web.config se trouve dans le répertoire où le service a été inscrit. Ce fichier décrit votre service ; il se charge automatiquement lorsqu'un client essaie d'accéder à votre service à l'aide d'un navigateur ou d'un client utilisant le canal HTTP sur le port 80.

Pour exécuter l'exemple

  1. Accédez au répertoire qui contient l'un des trois fichiers exécutables :

    • ProxyWiredToHttpChannel.exe

    • ProxyWithCustomCasting.exe

    • ProxyWithReturnMessage.exe.

    Chaque fichier exécutable se trouve dans le sous-répertoire \bin\Debug du répertoire portant le même nom que l'application console.

  2. Tapez le nom du fichier exécutable sur la ligne de commande. Vérifiez que le service RemotingHello est inscrit dans IIS comme décrit ci-dessus avant d'exécuter ProxyWiredToHttpChannel.exe.

Voir aussi

Référence

IChannel
IMessage
IRemotingTypeInfo
MarshalByRefObject
OneWayAttribute
RealProxy
System.Collections
System.Runtime.Remoting
System.Runtime.Remoting.Proxies
System.Runtime.Remoting.Messaging
UnmanagedType

Concepts

Extension de la classe RealProxy

Autres ressources

Communication à distance avancée
Activation d'objets et durées de vie

Date de génération : 2010-02-13