Registrazione di canali

Nel sistema .NET Remoting, gli oggetti canale eseguono il trasporto dati quando un client richiama un metodo su un oggetto remoto. Il servizio remoto può supportare più di un canale ed è compito dell'applicazione client scegliere il canale più appropriato per soddisfare i relativi requisiti. Se non viene specificato alcun canale nel file di configurazione client e il client chiama un metodo su un oggetto remoto, una delle implementazioni del canale predefinito (HttpChannel o TcpChannel) verrà caricata dal sistema .NET Remoting se supporta il protocollo di rete del client. Se, tuttavia, il client non prevede una qualsiasi funzione o eventi callback, è necessario specificare un canale del client che attenda tale funzione di callback.

Il canale può essere registrato in due modi. Viene dichiarato un modello del canale e si fa quindi riferimento a tale canale dell'applicazione oppure vengono specificate tutte le informazioni del canale direttamente nell'applicazione. I modelli di canale predefiniti presenti nel file Machine.config dovrebbero essere sufficienti per la maggior parte delle applicazioni ed è possibile farvi riferimento dal tag <channels> (all'interno del tag <application>) utilizzando l'attributo ref del tag <channel> e specificando "tcp" o "http". Non è necessario specificare un attributo port quando si utilizza un HttpChannel, mentre è necessario specificarne uno quando si utilizza il TcpChannel.

Se l'applicazione espone un oggetto server, è necessario registrare un canale affinché le applicazioni client siano in grado di comunicare con l'oggetto. È possibile eseguire questa operazione a livello di codice utilizzando il metodo ChannelServices.RegisterChannel o registrando il canale nel file di configurazione.

Se l'applicazione utilizza oggetti, sarà necessario registrare un canale in grado di raggiungerli. Questa operazione è obbligatoria in tutti i casi in cui si prevede di ricevere funzioni o eventi di callback, a meno che l'oggetto servizio non utilizzi uno dei canali client predefiniti elencati nel file di configurazione del computer.

Per esempi dettagliati, vedere Esempio di comunicazione remota: provider di sink di canale, l'elemento istanza <channel> e l'elemento modello <channel>.

Sink dei canali

I sink dei canali consentono agli sviluppatori di personalizzare la serializzazione e il trasporto di messaggi tra il client e i servizi remoti. I sink dei canali vengono creati dai provider di sink e sia i provider di sink del client sia i provider di sink del server possono essere specificati nel file di configurazione. I sink del canale del server vengono chiamati quando i messaggi vengono inviati e ricevuti dal server e specificati all'interno dell'elemento <serverProviders>. I sink del client vengono chiamati quando i messaggi vengono inviati e ricevuti dal client e specificati all'interno dell'elemento <clientProviders>.

I canali devono disporre di un sink del formattatore. I sink del formattatore serializzano un messaggio. .NET Framework comprende formattatori per la serializzazione binaria e SOAP.

Si noti che una volta specificato un formattatore personalizzato, tutti i canali si intendono specificati nell'ordine desiderato. Di conseguenza, se viene dichiarato un canale personalizzato che utilizza un formattatore personalizzato, è necessario specificare anche gli ulteriori provider da aggiungere alla catena dei sink del canale. Non verrà aggiunto alcun sink predefinito.

Vedere anche

Attività

Procedura: creare un modello di canale in un file di configurazione

Riferimenti

System.Runtime.Remoting.RemotingConfiguration Class

Concetti

Configurazione di applicazioni remote
Configurazione di oggetti remoti

Altre risorse

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