Configurazione di oggetti remoti

Gli sviluppatori che pubblicano o utilizzano oggetti utilizzabili in modalità remota sono responsabili della configurazione del sistema .NET Remoting affinché le applicazioni che utilizzano .NET Remoting funzionino correttamente. È possibile eseguire questa operazione a livello di codice oppure utilizzando il file di configurazione dell'applicazione o il file di configurazione del computer. Gli amministratori possono quindi utilizzare lo strumento .NET Framework Configuration per indirizzare client remoti a endpoint differenti o per modificare il ciclo di vita degli oggetti attivati dal client (<activated>) o attivati dal server (<wellknown>) laddove necessario.

La registrazione delle classi utilizzabili in modalità remota viene eseguita posizionando tali classi all'interno dell'elemento <application>, figlio dell'elemento <system.runtime.remoting>. Gli oggetti utilizzati da un'applicazione sono raggruppati dall'applicazione remota nella sezione <client> all'interno dell'elemento <application>. Gli oggetti esposti da un'applicazione vengono dichiarati all'interno di una sezione <service> nel nodo <application>. Se non si effettua l'hosting dei tipi remoti in Internet Information Services (IIS), è possibile specificare un attributo name per l'applicazione che diventa quindi parte dell'URL di attivazione, ma non è necessaria in nessuno scenario. Per informazioni dettagliate sull'hosting in IIS, vedere Hosting di oggetti remoti in Internet Information Services (IIS).

.NET Remoting, inoltre, non recupera automaticamente i valori di configurazione dei servizi remoti dal file di configurazione dell'applicazione. Per configurare i servizi remoti tramite un file di configurazione, chiamare RemotingConfiguration.Configure. Il file di configurazione dei servizi remoti verrà automaticamente caricato nel dominio dell'applicazione host solo quando il tipo utilizzabile in modalità remota risiede in IIS. In tal caso, .NET Remoting recupererà automaticamente solo le impostazioni del servizio dal file Web.config. Le impostazioni del client verranno ignorare fino a quando il file di configurazione non verrà nuovamente caricato con una chiamata diretta al metodo RemotingConfiguration.Configure.

Nello schema che segue viene illustrata la struttura degli elementi che possono essere utilizzati per configurare un'applicazione in modo che utilizzi .NET Remoting.

<configuration>

<system.runtime.remoting>

<application>

<lifetime>

<channels> (istanza)

<channel> (istanza)

<serverProviders> (istanza)

<provider> (istanza)

<formatter> (istanza)

<clientProviders> (istanza)

<provider> (istanza)

<formatter> (istanza)

<client>

<wellknown> (istanza client)

<activated> (istanza client)

<service>

<wellknown> (istanza servizio)

<activated> (istanza servizio)

<soapInterop>

<interopXmlType>

<interopXmlElement>

<preLoad>

<channels> (modello)

<channel> (modello)

<serverProviders> (istanza)

<provider> (istanza)

<formatter> (istanza)

<clientProviders> (istanza)

<provider> (istanza)

<formatter> (istanza)

<channelSinkProviders>

<serverProviders> (modello)

<provider> (modello)

<formatter> (modello)

<clientProviders> (modello)

<provider> (modello)

<formatter> (modello)

<debug>

Per utilizzare le impostazioni remote, è necessario chiamare RemotingConfiguration.Configure sul file di configurazione dell'applicazione. Si noti che Common Language Runtime carica automaticamente il file di configurazione del computer prima di caricare il file di configurazione dell'applicazione. Non chiamare RemotingConfiguration.Configure sul file di configurazione del computer. Se si esegue questa operazione, è possibile che vengano generate eccezioni quando alcuni oggetti già presenti in memoria vengono caricati di nuovo.

Configurazione della durata

Specificare un durata predefinita per tutti gli oggetti attivati dal client e gli oggetti Singleton attivati dal server in un'applicazione utilizzando l'elemento <lifetime>.

Per informazioni dettagliate sulla configurazione a livello di codice e sulle nozioni di durata, vedere Lease di durata.

Elementi istanza ed elementi modello

Esistono due tipi di elementi correlati alla creazione di canali: gli elementi modello e gli elementi istanza. Gli elementi modello vengono utilizzati per dichiarare un provider di sink di canale del client, del server o del canale o un formattatore di sink del canale o del server da utilizzare in qualunque altra parte della stessa applicazione semplicemente facendo riferimento all'attributo ID dell'elemento modello.

Nota

Ogni volta che si utilizza l'attributo type in un elemento modello per creare una configurazione predefinita che utilizza un tipo implementato dal sistema, ad esempio un BinaryFormatter o un HttpChannel, è necessario specificare le informazioni complete sul tipo, incluse la versione, la lingua e le informazioni con nome sicuro. È possibile ottenere queste informazioni dal file machine.config o tramite l'utilità della Global Assembly Cache Gacutil.exe. Non è necessario se il tipo viene definito in un assembly che non si trova nella Global Assembly Cache ma è individuabile oppure se si fa riferimento al tipo in un elemento istanza in cui è possibile utilizzare l'attributo ref.

Vedere anche

Attività

Procedura: configurare il ciclo di vita di un oggetto remoto attivato dal client o attivato dal server
Procedura: configurare canali

Riferimenti

System.Runtime.Remoting.RemotingConfiguration Class

Concetti

Configurazione di applicazioni remote
Canali
Registrazione di canali
Registrazione lato server
Registrazione lato client
Registrazione di canali

Altre risorse

Registrazione di oggetti remoti tramite file di configurazione
Cenni preliminari su .NET Framework Remoting