Scelta di un canale
L'infrastruttura di .NET Framework Remoting consente di implementare i seguenti canali:
IpcChannel
La classe IpcChannel utilizza le named pipe in modo da consentire una comunicazione interprocesso a elevata velocità per più applicazioni nello stesso computer. Una classe IpcChannel esegue le operazioni seguenti:
Comunicazione tra mittente e destinatario mediante named pipe.
Supporto della codifica di payload in formato binario e nel formato di serializzazione standard SOAP.
Generazione e utilizzo di ChannelDataStore per i riferimenti a oggetti.
Supporto della rappresentazione e della delega.
Supporto dell'elenco di controllo di accesso (ACL) sulla named pipe per controlli di accesso avanzati.
Utilizzare una classe IpcChannel quando un'applicazione deve comunicare con un'altra applicazione eseguita in un processo diverso nello stesso computer. Poiché la classe IpcChannel utilizza named pipe, le applicazioni possono in genere ottenere le più elevate prestazioni relative alla comunicazioni e utilizzare la rappresentazione e la delega per controllare l'accesso all'oggetto remoto. Questa funzionalità risulta particolarmente utile tra il secondo e il terzo livello di un'applicazione a tre livelli che deve garantire un elevato livello di prestazioni in caso di sovraccarico.
TcpChannel
La classe TcpChannel utilizza un formattatore binario per serializzare tutti i messaggi in un flusso binario e per trasportarlo all'URI di destinazione mediante il protocollo TCP. Una classe TcpChannel esegue le funzioni seguenti:
Comunicazione tra mittente e destinatario mediante socket TCP.
Supporto della codifica di payload in formato binario e nel formato di serializzazione standard SOAP.
Generazione e utilizzo di ChannelDataStore per i riferimenti a oggetti.
Supporto della rappresentazione e della delega.
Supporto della crittografia SSPI.
Una classe TcpChannel apre e memorizza nella cache un numero di connessioni pari ai thread che inoltrano richieste al server il quel momento specifico. Le connessioni socket vengono chiuse sul client dopo 15-20 secondi di inattività.
Se viene generato un certo numero di applicazioni che utilizzano .NET Framework Remoting, una classe HttpChannel può essere utilizzata erroneamente per connettersi a un dominio di applicazione server in attesa con TcpChannel. In questo caso, il client riceve il messaggio: "Connessione sottostante chiusa: errore imprevisto durante un'operazione di ricezione." Se un client riceve questa eccezione, controllare l'eventuale presenza di canali non corrispondenti su client e server.
HttpChannel
La classe HttpChannel trasporta i messaggi da e verso oggetti remoti mediante il protocollo SOAP. Tutti i messaggi vengono passati mediante SoapFormatter, in cui il messaggio viene modificato in XML e serializzato e le intestazioni SOAP vengono aggiunte al flusso. Se viene specificato anche il formattatore binario, viene creato un flusso di dati binario. Tale flusso viene quindi trasportato all'URI di destinazione mediante il protocollo HTTP. Una classe HttpChannel è compatibile con SOAP 1.1 ed esegue le funzioni seguenti:
Comunicazione tra mittente e destinatario mediante il protocollo HTTP come protocollo di trasporto.
Supporto della codifica di payload in SOAP, ovvero uno standard di codifica XML, nonché in formato binario.
Impostazione del destinatario affinché riceva richieste e invii risposte HTTP in ASP.NET e su un socket TCP.
Generazione e utilizzo di ChannelDataStore per i riferimenti a oggetti.
Supporto della rappresentazione e della delega.
Supporto della crittografia SSPI.
Nota
Per utilizzare una classe HttpChannel in un client con Microsoft Internet Explorer, non è possibile impostare la configurazione automatica delle impostazioni proxy Internet Explorer, ma è necessario configurarle in modo esplicito.
Una classe HttpChannel apre solo un determinato numero di connessioni contemporanee su un server specifico. L'impostazione predefinita è due. È possibile tuttavia utilizzare l'attributo clientConnectionLimit in un file di configurazione dell'applicazione per modificare tale impostazione.
Se viene generato un certo numero di applicazioni che utilizzano .NET Framework Remoting, una classe HttpChannel può essere utilizzata erroneamente per connettersi a un dominio di applicazione server in attesa con TcpChannel. In questo caso, il client riceve il messaggio: "Connessione sottostante chiusa: errore imprevisto durante un'operazione di ricezione." Se un client riceve questa eccezione, controllare l'eventuale presenza di canali non corrispondenti su client e server.
Vedere anche
Riferimenti
HttpChannel
TcpChannel
IpcChannel