Procedura: Compilare un'applicazione client
Per compilare un client del tipo remoto definito in Procedura: Compilare un tipo utilizzabile in remoto e ospitato dall'applicazione creata in Procedura: Compilare un'applicazione host, l'applicazione deve registrarsi come client per quell'oggetto remoto e quindi richiamarlo come se fosse all'interno del dominio di applicazione del client. Il sistema .NET Remoting intercetta le chiamate del client, le inoltra all'oggetto remoto e restituisce i risultati al client. La procedura riportata di seguito descrive come creare un semplice client .NET Remoting.
Nota: |
---|
Per informazioni sulla compilazione e l'esecuzione dell'esempio, vedere Procedura: Compilare ed eseguire un'applicazione .NET Remoting di base. |
Per creare un client .NET Remoting di base
Proseguendo da Procedura: Compilare un'applicazione host, creare una nuova directory in
remoting
chiamataclient
. Creare un file di configurazione per l'applicazione client come mostrato nel codice seguente e salvare il file nella directoryremoting\client
. Il nome file deve seguire il modello nome applicazione.exe.config. In questo caso,verrà chiamataclient.exe.config
. Nel file di configurazione seguente viene ordinato al sistema .NET Remoting che le informazioni sul tipo per l'oggetto remotoRemotableType
si trovano nell'assemblyRemotableType
e che l'oggetto si trova all'indirizzo 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>
Per informazioni dettagliate sull'attributo URL in questo file di configurazione, vedere URL di attivazione. Se si desidera eseguire questa applicazione su una rete, è necessario sostituire localhost nella configurazione client con il nome del computer remoto.
Nota: Anche se nel file di configurazione precedente sono presenti poche impostazioni, la maggior parte dei problemi di utilizzo di .NET Remoting si verificano perché alcune di queste impostazioni sono incorrette o non combaciano con le impostazioni di configurazione per le applicazioni client. È molto facile commettere un errore nella digitazione di un nome, dimenticare una porta, o trascurare un attributo. Se si verificano problemi con l'applicazione remota, controllare prima le impostazioni di configurazione.
Creare un nuovo file di origine nel linguaggio desiderato. Nel metodo principale, chiamare RemotingConfiguration.Configure passando il nome del file di configurazione del client (
client.exe.config
). Creare quindi un'istanza diRemotableType
e chiamarne il metodoSayHello
. Salvare l'applicazione client comeClient.cs
oClient.vb
nella directoryremoting\client
.Nota: L'applicazione client non deve essere salvata nella stessa directory dell'applicazione Listener.exe. In quel caso, infatti, non sarà possibile essere sicuri del fatto che si stia ricevendo e utilizzando un riferimento remoto, perché possono verificarsi assembly e risoluzione di tipi quando le applicazioni sono nella stessa directory.
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()); }
Copiare l'assembly RemotableType.dll da
remoting\Type
inremoting\client
.Nota: Una domanda comune a questo punto è: "Come si può sapere che l'oggetto remoto viene chiamato se sto copiando l'assembly al client?". Proprio per questo motivo abbiamo aggiunto la chiamata a
Console.WriteLine
nel metodoRemotableType.SayHello()
. Se l'oggetto remoto viene chiamato si verificaWriteLine
nel processo del Listener; in caso contrario si verificaWriteLine
nel processo client.Compilare l'applicazione client digitando il comando seguente nella directory
remoting\client
:vbc /r:RemotableType.dll Client.vb csc /noconfig /r:RemotableType.dll Client.cs
Aprire due prompt dei comandi. In uno, andare alla directory remoting\listener ed eseguire listener.exe. Nell'altro, andare alla directory remoting\client ed eseguire client.exe. Il prompt dei comandi del client dovrebbe risultare analogo al seguente:
C:\tmp\Remoting\client>client Hello, world
Il prompt dei comandi del listener dovrebbe risultare analogo al seguente:
C:\tmp\Remoting\listener>listener Listening for requests. Press Enter to exit... RemotableType.SayHello() was called!
Dall'output del listener è possibile vedere che ha ricevuto una chiamata a
RemotableType.SayHello()
.
Esempio
' 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());
}
}
Vedere anche
Attività
Procedura: Compilare un'applicazione host
Riferimenti
Schema delle impostazioni remote
Concetti
Configurazione di applicazioni remote
Attivazione del server
Altre risorse
Compilazione di un'applicazione di base di .NET Framework Remoting
Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.