Comment : générer une application cliente
Pour générer un client du type distant défini dans Comment : générer un type accessible à distance et hébergé par l'application créée dans Comment : générer une application d'hébergement, votre application doit s'inscrire en tant que client de cet objet distant, puis l'appeler comme si elle se trouvait dans le domaine d'application du client. Le système d'accès distant .NET intercepte vos appels clients, les transfère à l'objet distant et retourne les résultats à votre client. La procédure suivante décrit comment générer un client d'accès distant de base.
Remarque : |
---|
Consultez Comment : compiler et exécuter une application d'accès distant de base pour obtenir des instructions complètes sur la génération et l'exécution de cet exemple. |
Pour générer un client d'accès distant de base
Poursuivons à partir de Comment : générer une application d'hébergement ; créez un répertoire sous
remoting
appeléclient
. Créez un fichier de configuration pour l'application cliente comme indiqué dans le code suivant et enregistrez le fichier dans le répertoireremoting\client
. Le nom de fichier doit correspondre au format app-name.exe.config. Il s'appelle iciclient.exe.config
. Le fichier de configuration suivant informe le système d'accès distant que les informations de type de l'objet distantRemotableType
se trouvent dans l'assemblyRemotableType
et que l'adresse de l'objet est https://localhost:8989/RemotableType .rem.<configuration> <system.runtime.remoting> <application> <client> <wellknown type="RemotableType, RemotableType" url="https://localhost:8989/RemotableType.rem" /> </client> </application> </system.runtime.remoting> </configuration>
Pour plus d'informations sur l'attribut URL de ce fichier de configuration, consultez URL d'activation. Pour exécuter cette application sur un réseau, remplacez localhost dans la configuration client par le nom de l'ordinateur distant.
Remarque : Bien que le fichier de configuration précédent contienne peu de paramètres, la plupart des problèmes rencontrés avec l'accès distant .NET se produisent en raison de certains paramètres incorrects ou ne correspondant pas aux paramètres de configuration des applications clientes. Il est facile d'écrire de façon erronée un nom, d'oublier un port ou un attribut. Si vous rencontrez des problèmes avec votre application d'accès distant, commencez par vérifier vos paramètres de configuration.
Créez un fichier source dans le langage de votre choix. Dans la méthode principale, appelez RemotingConfiguration.Configure en passant le nom du fichier de configuration client (
client.exe.config
). Instanciez ensuite une instance deRemotableType
et appelez sa méthodeSayHello
. Enregistrez l'application cliente sousClient.cs
ouClient.vb
dans le répertoireremoting\client
.Remarque : L'application cliente ne doit pas être enregistrée dans le même répertoire que celui de votre application Listener.exe. En effet, vous ne pouvez pas être certain que vous recevez et utilisez une référence distante, car la résolution d'assembly et de type peut se produire lorsque des applications sont dans le même répertoire.
Public Shared Sub Main() RemotingConfiguration.Configure("Client.exe.config") Dim remoteObject As New RemotableType() Console.WriteLine(remoteObject.SayHello()) End Sub 'Main public static void Main(){ RemotingConfiguration.Configure("Client.exe.config"); RemotableType remoteObject = new RemotableType(); Console.WriteLine(remoteObject.SayHello()); }
Copiez l'assembly RemotableType.dll à partir de
remoting\Type
versremoting\client
.Remarque : À ce stade, beaucoup se demandent « Comment savoir si l'objet distant est appelé si je copie l'assembly vers le client ? ». C'est exactement pour cette raison que nous avons ajouté l'appel à
Console.WriteLine
dans la méthodeRemotableType.SayHello()
. Si l'objet distant est appelé,WriteLine
se produit dans le processus écouteur. Sinon,WriteLine
se produit dans le processus client.Compilez l'application cliente en saisissant la commande suivante dans le répertoire
remoting\client
:vbc /r:RemotableType.dll Client.vb csc /noconfig /r:RemotableType.dll Client.cs
Ouvrez deux invites de commandes. Dans l'une d'elle, accédez au répertoire remoting\listener et exécutez listener.exe. Dans l'autre, accédez au répertoire remoting\client et exécutez client.exe. L'invite de commandes du client doit ressembler à ceci :
C:\tmp\Remoting\client>client Hello, world
L'invite de commandes de l'écouteur doit ressembler à ceci :
C:\tmp\Remoting\listener>listener Listening for requests. Press Enter to exit... RemotableType.SayHello() was called!
L'invite de commandes de l'écouteur indique qu'il a reçu un appel à
RemotableType.SayHello()
.
Exemple
' Client.vb
Imports System
Imports System.Runtime.Remoting
Public Class Client
Public Shared Sub Main()
RemotingConfiguration.Configure("Client.exe.config")
Dim remoteObject As New RemotableType()
Console.WriteLine(remoteObject.SayHello())
End Sub 'Main
End Class 'Client
// Client.cs
using System;
using System.Runtime.Remoting;
public class Client{
public static void Main(){
RemotingConfiguration.Configure("Client.exe.config");
RemotableType remoteObject = new RemotableType();
Console.WriteLine(remoteObject.SayHello());
}
}
Voir aussi
Tâches
Comment : générer une application d'hébergement
Référence
Schéma des paramètres d'accès distant
Concepts
Configuration d'applications distantes
Activation serveur
Autres ressources
Génération d'une application d'accès distant .NET Framework de base
Copyright ©2007 par Microsoft Corporation. Tous droits réservés.