Condividi tramite


Proprietà di configurazione di formattatori e canali

In questo argomento vengono elencate e descritte tutte le proprieta` di configurazione che e` possibile specificare per le implementazioni di IChannel nel sistema .NET Remoting. Tutti i valori sono rappresentati da stringhe quando sono dichiarati nel file di configurazione, ma quando viene generata la proprieta` IDictionary a livello di programmazione, i valori integer possono essere specificati come interi (senza virgolette) o come stringhe (valori tra virgolette) e i valori Boolean possono essere specificati come booleani. Tutti gli altri valori sono specificati come stringhe.

Per informazioni su come configurare un canale in un file di configurazione in un elemento <channel>, vedere Procedura: configurare un canale in un file di configurazione. Per informazioni su come configurare un canale a livello di programmazione, vedere Procedura: configurare un canale a livello di programmazione.

Nella tabella seguente vengono elencati i tipi di canale e le relative proprieta` supportate.

Tipo Proprieta` supportate

HttpChannel

allowAutoRedirect

bindTo

clientConnectionLimit

connectionGroupName

credentials

exclusiveAddressUse

listen

machineName

name

port

priority

proxyName

proxyPort

servicePrincipalName

suppressChannelData

timeout

unsafeAuthenticatedConnectionSharing

useAuthenticatedConnectionSharing

useDefaultCredentials

useIpAddress

HttpClientChannel

allowAutoRedirect

clientConnectionLimit

connectionGroupName

credentials

domain

machineName

name

password

priority

proxyName

proxyPort

servicePrincipalName

timeout

unsafeAuthenticatedConnectionSharing

useAuthenticatedConnectionSharing

useDefaultCredentials

username

HttpServerChannel

bindTo

exclusiveAddressUse

listen

machineName

name

port

priority

suppressChannelData

useIpAddress

TcpChannel

authorizationModule

bindTo

exclusiveAddressUse

impersonate

machineName

name

port

priority

rejectRemoteRequests

secure

servicePrincipalName

suppressChannelData

timeout

tokenImpersonationLevel

useIpAddress

TcpClientChannel

domain

machineName

name

password

priority

protectionLevel

retryCount

secure

servicePrincipalName

socketCachePolicy

socketCacheTimeout

timeout

tokenImpersonationLevel

username

TcpServerChannel

authorizationModule

bindTo

exclusiveAddressUse

impersonate

machineName

name

port

priority

protectionLevel

rejectRemoteRequests

secure

suppressChannelData

useIpAddress

IpcChannel

authorizedGroup

connectionTimeout

name

portName

priority

secure

suppressChannelData

IpcClientChannel

connectionTimeout

name

priority

secure

IpcServerChannel

authorizedGroup

name

portName

priority

secure

suppressChannelData

Nella tabella seguente vengono descritte le proprieta` generali dei canali e i tipi di canale che le supportano.

Proprieta` Descrizione Tipi che supportano la proprieta`

name

Stringa che specifica il nome del canale. Se non viene specificato alcun nome, viene utilizzato un nome predefinito che dipende dal tipo:

HttpChannel: "http"

HttpClientChannel: "client http"

HttpServerChannel: "server http"

TcpChannel: "tcp"

TcpClientChannel: "client tcp"

TcpServerChannel: "server tcp"

IpcChannel: "ipc"

IpcClientChannel: "client ipc"

IpcServerChannel: "server ipc"

Ogni canale deve avere un nome univoco. Impostare questa proprieta` su una stringa vuota ("" o String.Empty) per ignorare i nomi evitando conflitti. Nel sistema e` possibile utilizzare qualsiasi numero di canali per cui la proprieta` name e` impostata su String.Empty. Questa proprieta` viene utilizzata per recuperare un canale specifico quando viene chiamato il metodo ChannelServices.GetChannel(). Per informazioni dettagliate, vedere Canali.

HttpChannel

HttpServerChannel

HttpClientChannel

TcpChannel

TcpClientChannel

TcpServerChannel

IpcChannel

IpcClientChannel

IpcServerChannel

machineName

Stringa che specifica il nome del computer utilizzato con il canale corrente. Se viene utilizzata con un canale server, esegue l'override di useIpAddress.

Nota

Utilizzare il nome Domain Name System (DNS) del computer e` in genere una buona soluzione, ma quando l'indirizzo IP di una particolare scheda di interfaccia di rete (NIC, Network Interface Card), di solito wireless, cambia rapidamente, e` necessario configurare l'applicazione in modo che per attivare .NET Remoting, allo scopo di trovare il computer tramite DNS, venga utilizzato machineName. Quando pero` il nome del computer non viene risolto rapidamente, o non viene risolto affatto, e quando il computer dispone di piu` NIC, fisiche o virtuali, come spesso avviene per le connessioni remote o per le schede di rete VPN, e` necessario impostare la proprieta` machineName sull'indirizzo IP della NIC correntemente utilizzata per la specifica connessione.

HttpChannel

HttpClientChannel

HttpServerChannel

TcpChannel

TcpClientChannel

TcpServerChannel

priority

Qualunque valore integer che rappresenta la priorita` assegnata al canale. Piu` alto e` numero, maggiore la probabilita` che il canale venga scelto per primo per la connessione. La priorita` predefinita e` 1 e sono consentiti numeri negativi.

HttpChannel

HttpServerChannel

HttpClientChannel

TcpChannel

TcpClientChannel

TcpServerChannel

IpcChannel

IpcClientChannel

IpcServerChannel

secure (TcpChannel)

Valore Boolean, true o false, che specifica se le comunicazioni sul canale sono protette. Il valore predefinito e` false. Quando tale proprieta` e` impostata su true, la proprieta` tokenImpersonationLevel e` impostata su Identification, mentre la proprieta` protectionLevel e` impostata su EncryptAndSign. Un canale protetto definito da TcpClientChannel puo` connettersi solo a un canale protetto definito da TcpServerChannel, mentre un canale non protetto definito da TcpClientChannel puo` connettersi solo a un canale non protetto definito da TcpServerChannel.

Nota

Se nel computer server e` in esecuzione Windows 95, Windows 98 o Windows Me, il canale definito da TcpServerChannel non puo` essere specificato come canale protetto.

TcpChannel

TcpClientChannel

TcpServerChannel

secure (IpcChannel)

Valore Boolean, true o false, che specifica se le comunicazioni sul canale sono protette. Il valore predefinito e` false. Quando tale proprieta` e` impostata su true, la proprieta` tokenImpersonationLevel e` impostata su Identification. Un canale protetto definito da IpcClientChannel puo` connettersi a un canale definito da IpcServerChannel protetto o non protetto, mentre un canale non protetto definito da IpcClientChannel puo` connettersi solo a un canale non protetto definito da IpcServerChannel.

IpcChannel

IpcClientChannel

IpcServerChannel

protectionLevel

Valore di tipo ProtectionLevel. Il valore predefinito e` None, a meno che la proprieta` secure non sia impostata su true. In questo caso il valore predefinito e` EncryptAndSign. Per impostare la proprieta` ProtectionLevel su un valore diverso da None, e` necessario impostare la proprieta` secure su true.

Il valore None e` l'unica impostazione compatibile con Windows 95, Windows 98 o Windows Me.

TcpClientChannel

TcpServerChannel

Nella tabella riportata di seguito vengono illustrate le proprieta` di canale client che e` possibile specificare.

Proprieta` Descrizione Tipi che supportano la proprieta`

clientConnectionLimit

Valore integer che indica il numero di connessioni contemporanee consentite in un server specifico. Il valore predefinito e` 2.

HttpChannel

HttpClientChannel

proxyName

Stringa che specifica il nome utilizzato dal client proxy quando esegue le chiamate al server remoto. Per impostazione predefinita, viene utilizzato il nome host del computer client.

HttpChannel

HttpClientChannel

proxyPort

Valore integer che specifica il numero di porta da cui il client proxy esegue le chiamate al server remoto. Per impostazione predefinita, in fase di esecuzione viene scelta una porta disponibile e non privilegiata.

HttpChannel

HttpClientChannel

retryCount

Valore integer che specifica il numero di tentativi di chiamate remote se la prima non puo` essere eseguita. Il valore predefinito e` 1.

TcpClientChannel

socketCachePolicy

Membro dell'enumerazione SocketCachePolicy che specifica se socketCacheTimeout viene valutato in base alla creazione del socket o all'ultima trasmissione sul socket stesso. Il valore predefinito e` Default.

TcpClientChannel

socketCacheTimeout

Valore integer che specifica, in secondi, dopo quanto tempo un socket viene rimosso dalla cache gestita da un oggetto TcpClientChannel. Il valore predefinito e` cinque secondi.

TcpClientChannel

connectionTimeout

Valore integer che specifica, in millisecondi, il tempo di attesa per l'esito positivo di una connessione. Il valore 0 o -1 indica un periodo di timeout infinito. Il valore predefinito e` Infinite.

IpcChannel

IpcClientChannel

timeout

Valore integer che specifica, in millisecondi, il tempo di attesa per la scadenza di una richiesta. Il valore 0 o -1 indica un periodo di timeout infinito. Il valore predefinito e` Infinite.

HttpChannel

HttpClientChannel

TcpChannel

TcpClientChannel

allowAutoRedirect

Valore Boolean, true o false, che indica se e` attivata la gestione automatica dei reindirizzamenti del server.

HttpChannel

HttpClientChannel

credentials

Ottiene o imposta un'implementazione di ICredentials che rappresenta l'identita` del client.

HttpChannel

HttpClientChannel

useAuthenticatedConnectionSharing

Valore Boolean, true o false, che indica se il canale server riutilizzera` connessioni autenticate anziche´ autenticare ogni chiamata in arrivo. Per impostazione predefinita il valore viene impostato su true se anche il valore useDefaultCredentials e` impostato su true. In caso contrario, il valore verra` impostato su false e, qualora il server richieda l'autenticazione, verra` autenticata ogni singola chiamata. L'implementazione analoga a livello di programmazione viene ottenuta creando un oggetto che implementi IDictionary, impostando il valore di "credentials" su CredentialCache.DefaultCredentials e passandolo al sink del canale oppure utilizzando il valore di IDictionary restituito dal metodo ChannelServices.GetChannelSinkProperties.

La coppia nome/valore specificata e` supportata solo nella versione 1.1 di .NET Framework per le piattaforme Microsoft Windows 98, Windows NT 4.0, Windows Millennium Edition (Windows Me), Windows 2000, Windows XP Home Edition, Windows XP Professional e per la famiglia Windows Server 2003.

HttpChannel

HttpClientChannel

unsafeAuthenticatedConnectionSharing

Valore Boolean, true o false, che indica se il client specifichera` le proprie credenziali e il nome del gruppo di connessioni che il server deve utilizzare per creare un gruppo di connessioni autenticate. Se il valore e` impostato su true, il valore connectionGroupName dovra` essere mappato a un solo utente autenticato. Questa coppia nome/valore verra` ignorata se il valore useAuthenticatedConnectionSharing e` impostato su true.

La coppia nome/valore specificata e` supportata solo nella versione 1.1 di .NET Framework per le piattaforme Windows 98, Windows NT 4.0, Windows Me, Windows 2000, Windows XP Home Edition, Windows XP Professional e per la famiglia Windows Server 2003.

HttpChannel

HttpClientChannel

connectionGroupName

Stringa che specifica il nome da utilizzare come nome del gruppo di connessioni sul server se e` specificato anche il valore di unsafeAuthenticatedConnectionSharing. Questa coppia nome/valore verra` ignorata se il valore unsafeAuthenticatedConnectionSharing non e` impostato su true. Se specificato, verificare che il nome sia mappato a un solo utente autenticato.

La coppia nome/valore specificata e` supportata solo nella versione 1.1 di .NET Framework per le piattaforme Windows 98, Windows NT 4.0, Windows Me, Windows 2000, Windows XP Home Edition, Windows XP Professional e per la famiglia Windows Server 2003.

HttpChannel

HttpClientChannel

useDefaultCredentials

Valore Boolean, true o false, che specifica se presentare credenziali per l'identita` associata al thread corrente quando viene eseguita l'autenticazione su un canale server.

HttpChannel

HttpClientChannel

servicePrincipalName

Stringa che specifica il valore di servicePrincipalName per l'autenticazione Kerberos. Il valore predefinito e` null.

HttpChannel

HttpClientChannel

TcpChannel

TcpClientChannel

tokenImpersonationLevel

Valore di tipo TokenImpersonationLevel. Questa proprieta` specifica le modalita` di autenticazione tra il client e il server. Il valore predefinito e` None, a meno che la proprieta` secure non sia impostata su true. In questo caso il valore predefinito e` Identification.

TcpChannel

TcpClientChannel

domain

Stringa che specifica il nome di dominio da utilizzare, insieme al nome utente specificato da username e alla password specificata da password, quando viene eseguita l'autenticazione su un canale server.

HttpClientChannel

TcpClientChannel

username

Stringa che specifica un nome utente da utilizzare, insieme alla password specificata da password e al dominio specificato da domain, quando viene eseguita l'autenticazione su un canale server.

HttpClientChannel

TcpClientChannel

password

Stringa che specifica la password da utilizzare, insieme al nome utente specificato da username e al dominio specificato da domain, quando viene eseguita l'autenticazione su un canale server.

HttpClientChannel

TcpClientChannel

Nota

In Windows 98 e Windows Me non e` previsto alcun ID di protezione per identificare il nome del gruppo di connessioni di autenticazione. Su queste piattaforme il nome del gruppo di connessioni e` quindi unico.

Nota

Se si desidera che, mediante l'applicazione, vengano passati l'implementazione di ICredentials o valori username, password e domain espliciti nelle proprieta` HttpClientChannel, e` possibile attivare la condivisione della connessione di autenticazione passando anche le coppie nome/valore unsafeAuthenticatedConnectionSharing e connectionGroupName, assicurandosi che tramite il valore connectionGroupName venga eseguito il mapping a un solo utente autenticato.

Nella tabella riportata di seguito vengono illustrate le proprieta` di canale server che e` possibile specificare.

Proprieta` Descrizione Tipi che supportano la proprieta`

port

Valore integer che specifica la porta su cui il canale rimane in attesa. Se il valore specificato e` 0, il sistema .NET Remoting sceglie automaticamente una porta gia` aperta.

HttpChannel

HttpServerChannel

TcpChannel

TcpServerChannel

suppressChannelData

Valore Boolean, true o false, che specifica se il canale verra` utilizzato come riferimento per i dati disponibili mediante le proprieta` ChannelData, ChannelData o ChannelData. Il valore predefinito e` false.

HttpChannel

HttpServerChannel

TcpChannel

TcpServerChannel

IpcChannel

IpcServerChannel

useIpAddress

Valore Boolean, true o false, che specifica se utilizzare l'indirizzo IP nell'URL di pubblicazione anziche´ il nome del computer. Nelle reti wireless, ad esempio, l'indirizzo IP di un computer portatile che si sposta nella rete viene spesso modificato. Se si specifica false per questo valore, invece dell'indirizzo verra` utilizzato il nome del computer, in modo che le comunicazioni remote non vengano disconnesse nel corso del roaming. L'impostazione predefinita e` true. Tale valore puo` essere sottoposto a override dalla proprieta` machineName quando questa viene utilizzata con un canale server. Per ulteriori informazioni, vedere la proprieta` machineName.

HttpChannel

HttpServerChannel

TcpChannel

TcpServerChannel

bindTo

Stringa che specifica l'indirizzo IP della scheda di interfaccia di rete alla quale deve collegarsi il canale server. Il valore predefinito e` System.Net.IPAddress.Any.

HttpChannel

HttpServerChannel

TcpChannel

TcpServerChannel

listen

Valore Boolean, true o false, che specifica se consentire l'attivazione per l'hook in IChannelReceiverHook.WantsToListen. Il valore predefinito e` true.

HttpChannel

HttpServerChannel

rejectRemoteRequests

Valore Boolean, true o false, che specifica se rifiutare le richieste provenienti da altri computer. Se si specifica true, saranno consentite solo le chiamate a .NET Remoting effettuate dal computer locale. Il valore predefinito e` false.

TcpChannel

TcpServerChannel

exclusiveAddressUse

Valore Boolean, true o false, che specifica se il canale impedira` ad altre applicazioni di riutilizzare la combinazione porta/indirizzo IP. Il valore predefinito e` true. Se il valore specificato e` true, questa proprieta` imposta l'opzione relativa al socket del server SocketOptionName su SocketOptionName.ExclusiveAddressUse.

La proprieta` specificata e` supportata solo nella versione 1.1 di .NET Framework per le piattaforme Windows NT 4.0 con Service Pack 4.0 o successivo, Windows Me, Windows 2000, Windows XP Home Edition, Windows XP Professional e per la famiglia Windows Server 2003.

Per modificare questa proprieta` e` necessario disporre dei privilegi di amministratore nelle piattaforme precedenti a Windows XP con Service Pack 2 o Windows Server 2003.

HttpChannel

HttpServerChannel

TcpChannel

TcpServerChannel

impersonate

Valore Boolean, true o false, che specifica se il server deve rappresentare il client. Il valore predefinito e` false.

TcpChannel

TcpServerChannel

authorizedGroup

Stringa che specifica il gruppo o l'utente che dispone dell'autorizzazione per connettersi al canale specificato. Per impostazione predefinita, l'accesso viene consentito a tutti gli utenti autorizzati.

IpcChannel

IpcServerChannel

portName

Stringa che specifica il nome della porta esposta dal server. Questa proprieta` e` necessaria per IpcChannel o IpcServerChannel.

IpcChannel

IpcServerChannel

authorizationModule

Stringa che specifica l'assembly, lo spazio dei nomi e il nome della classe che implementa l'interfaccia IAuthorizeRemotingConnection. Il formato della stringa deve corrispondere a "AuthorizationModuleNameSpace.AuthorizationModuleClass,AuthorizationModuleAssembly".

TcpChannel

TcpServerChannel

Nella tabella riportata di seguito vengono illustrate le proprieta` di sink di canale che e` possibile specificare.

Proprieta` Descrizione Tipi che supportano la proprieta`

includeVersions

Valore Boolean, true o false, che specifica se nel formattatore devono essere incluse informazioni sul controllo delle versioni.

BinaryClientFormatterSink BinaryServerFormatterSink SoapClientFormatterSink SoapServerFormatterSink

strictBinding

Valore Boolean, true o false, che indica se un formattatore di destinazione tenta innanzitutto di identificare il tipo mediante le eventuali informazioni sulla versione complete, prima di utilizzare solo il nome del tipo e dell'assembly senza le informazioni sulla versione. Il valore predefinito per entrambi i formattatori forniti dal sistema e` false. Per ulteriori informazioni, vedere Elemento <formatter> (modello).

BinaryServerFormatterSink SoapServerFormatterSink

metadataEnabled

Valore Boolean, true o false, che specifica se rispettare le richieste che terminano con "?wsdl" se il sink specificato si trova nella catena dei sink di canale. L'impostazione predefinita e` true. Se il sink e` impostato su false, viene generata un'eccezione in tutti i casi in cui sono richiesti metadati per qualsiasi oggetto del dominio di applicazione.

La proprieta` specificata e` supportata solo nella versione 1.1 di .NET Framework per le piattaforme Windows 98, Windows NT 4.0, Windows Me, Windows 2000, Windows XP Home Edition, Windows XP Professional e per la famiglia Windows Server 2003.

SdlChannelSink

remoteApplicationMetadataEnabled

Valore Boolean, true o false, che specifica se rispettare le richieste per l'URI (Uniform Resource Identifier) "RemoteApplicationMetadata?wsdl" dell'oggetto, che restituisce il linguaggio WSDL (Web Services Description Language) mediante il quale vengono descritti tutti gli oggetti pubblicati dal dominio di applicazione. Se e` impostato su false, per ogni richiesta a "RemoteApplicationMetadata.rem" sara` generata un'eccezione. Tutte le altre richieste "?wsdl" per specifici URI di oggetto verranno rispettate. Se e` impostato su true, la richiesta di metadati globale verra` rispettata. L'impostazione predefinita e` false.

La proprieta` specificata e` supportata solo nella versione 1.1 di .NET Framework per le piattaforme Windows 98, Windows NT 4.0, Windows Me, Windows 2000, Windows XP Home Edition, Windows XP Professional e per la famiglia Windows Server 2003.

SdlChannelSink

typeFilterLevel

Stringa che specifica il livello di deserializzazione automatica tentata da un canale server. I valori supportati sono Low , valore predefinito, e Full. Per ulteriori informazioni sui livelli di deserializzazione, vedere Deserializzazione automatica in .NET Framework Remoting.

La proprieta` specificata e` supportata solo nella versione 1.1 di .NET Framework per le piattaforme Windows 98, Windows NT 4.0, Windows Me, Windows 2000, Windows XP Home Edition, Windows XP Professional e per la famiglia Windows Server 2003.

BinaryServerFormatterSink SoapServerFormatterSink

Vedere anche

Attività

Procedura: configurare un canale in un file di configurazione
Procedura: configurare un canale a livello di programmazione

Riferimenti

Remoting Settings Schema

Concetti

Configurazione di applicazioni remote
Remote Object Configuration
Remote Object Configuration