Condividi tramite


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.

NoteNota:

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

  1. Proseguendo da Procedura: Compilare un'applicazione host, creare una nuova directory in remoting chiamata client. Creare un file di configurazione per l'applicazione client come mostrato nel codice seguente e salvare il file nella directory remoting\client. Il nome file deve seguire il modello nome applicazione.exe.config. In questo caso,verrà chiamata client.exe.config. Nel file di configurazione seguente viene ordinato al sistema .NET Remoting che le informazioni sul tipo per l'oggetto remoto RemotableType si trovano nell'assembly RemotableType 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.

    NoteNota:

    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.

  2. 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 di RemotableType e chiamarne il metodo SayHello. Salvare l'applicazione client come Client.cs o Client.vb nella directory remoting\client.

    NoteNota:

    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());
       }
    
  3. Copiare l'assembly RemotableType.dll da remoting\Type in remoting\client.

    NoteNota:

    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 metodo RemotableType.SayHello(). Se l'oggetto remoto viene chiamato si verifica WriteLine nel processo del Listener; in caso contrario si verifica WriteLine nel processo client.

  4. 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
    
  5. 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 
    
  6. 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!
    
  7. 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

Footer image

Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.