Generazione di un’applicazione client

Per generare un client del tipo remoto definito in Generazione di un tipo remotizzabile e inserito nell'applicazione creata in Generazione di un'applicazione client, è necessario che l'applicazione sia registrata come client per l'oggetto remoto in questione e poi venga richiamata come se si trovasse all'interno del dominio applicazione del client. Il sistema .NET Remoting consentirà di intercettare le chiamate del client, di inoltrarle all'oggetto remoto e di restituire i risultati al client. Nell'esempio di codice che segue viene illustrata la generazione di un semplice client remoto.

' 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.StringMethod())
   End Sub 'Main
End Class 'Client
[C#]
// 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.StringMethod());
   }
}

Per compilare questa classe in un eseguibile client o chiamante mediante gli strumenti della riga di comando forniti con .NET Framework SDK, salvarla come Client.estensione-linguaggio o con qualsiasi altro nome file in cui l'estensione del linguaggio corrisponda al linguaggio scelto per la compilazione. Salvare il file nella stessa directory in cui è stata salvata una copia di RemotableType.dll, la cui generazione è descritta nell'argomento Generazione di un tipo remotizzabile. La directory non deve essere la stessa di Listener.exe. In caso contrario, non si avrà la certezza di stare ricevendo e utilizzando un riferimento remoto, perché quando le applicazioni si trovano nella stessa directory può aver luogo la risoluzione dell'assembly e del tipo. Al prompt dei comandi in tale directory, digitare il seguente comando:

[Visual Basic]

vbc /r:RemotableType.dll Client.vb

[C#]

csc /noconfig /r:RemotableType.dll Client.cs

In questo comando il nome file è:

[Visual Basic]

Client.vb

[C#]

Client.cs

Come si vede nell'esempio, per consentire il caricamento della configurazione per la classe RemotableType il file Client.exe.config deve essere reperibile per la classe Client. Sarà pertanto opportuno salvarlo nella stessa directory di Client.exe, altrimenti non verrà trovato e verrà generata un'eccezione. Nell'esempio di codice che segue viene mostrato il file di configurazione Client.exe.config per questo dominio applicazione host o di attesa.

<configuration>
   <system.runtime.remoting>
      <application>
         <client>
            <wellknown 
               type="RemotableType, RemotableType"
               url="http://localhost:8989/RemotableType.rem"
            />
         </client>
      </application>
   </system.runtime.remoting>
</configuration>

Nel file viene indicato al sistema remoto che le informazioni sul tipo per l'oggetto remoto RemotableType sono reperibili nell'assembly RemotableType e che il client deve tentare di creare e utilizzare un oggetto RemotableType collocato all'indirizzo http://localhost:8989/RemotableType.rem. Per ulteriori informazioni sull'attributo URL in questo file di configurazione, vedere URL di attivazione. Per eseguire l'applicazione in una rete, nella configurazione del client è necessario sostituire hostlocale con il nome del computer remoto.

Nota   Il file di configurazione non contiene molte impostazioni, eppure la maggior parte dei problemi connessi all'utilizzo di .NET Remoting si verifica perché alcune di esse non sono corrette o non corrispondono alle impostazioni di configurazione per le applicazioni client. È facile commettere un errore nella digitazione del nome, dimenticare una porta o tralasciare un attributo. Se si riscontrano problemi con l'applicazione remota, per prima cosa controllare le impostazioni di configurazione.

Vedere anche

Generazione di un'applicazione .NET Remoting di base | Configurazione | Attivazione da server | Schema delle impostazioni remote | <wellknown>