Freigeben über


Konfigurationseigenschaften für Channel und Formatierungsprogramme

In diesem Thema werden alle Konfigurationseigenschaften aufgelistet und erläutert, die Sie für die IChannel-Implementierungen im .NET Remoting-System festlegen können. Alle Werte werden bei Deklaration in der Konfigurationsdatei als Zeichenfolgen dargestellt Wenn Sie aber die IDictionary-Eigenschaft programmgesteuert erstellen, können ganzzahlige Werte als ganze Zahlen (ohne Anführungszeichen) oder als Zeichenfolgen (Werte in Anführungszeichen) und boolesche Werte als Boolean festgelegt werden. Alle anderen Werte werden als Zeichenfolgen festgelegt. Im folgenden Codebeispiel wird veranschaulicht, wie die Werte in einer Konfigurationsdatei eines <channel>-Elements angezeigt werden könnten. (Wenn Sie eine Vorlage bestimmen möchten, die einen im globalen Assemblycache enthaltenen Typ verwendet, müssen Sie darauf achten, zur Bindung an den richtigen Typ alle Versionsinformationen und Informationen über starke Namen hinzuzufügen.)

<channel 
   name="MyCustomChannel"  
   priority="2"
   type="CustomChannelName, CustomAssembly, Version=1.0.6940.0, Culture=neutral, PublicKeyToken=somepublickeystring" 
/>

Im folgenden Codebeispiel wird gezeigt, wie die Werte erscheinen könnten, wenn Sie dies programmgesteuert für eine Serveranwendungsdomäne festlegten. In diesem Fall gibt der Server an, dass das Remotingsystem ein HttpChannel-Objekt für die Übertragung, jedoch ein BinaryFormatter-Objekt für Serialisierung und Deserialisierung verwendet.

Dim props = New Hashtable() As IDictionary
props("name") = "ChannelName1" 
Dim channel As New HttpChannel( _
   props, _
   Nothing, _
   New BinaryServerFormatterSinkProvider() _
)
ChannelServices.RegisterChannel(channel)

[C#]
IDictionary props = new Hashtable();
props["name"] = "MyHttpChannel";
HttpChannel channel = new HttpChannel(
   props, 
   null, 
   new BinaryServerFormatterSinkProvider()
);
ChannelServices.RegisterChannel(channel);

In der folgenden Tabelle werden die allgemeinen Channeleigenschaften aufgeführt, die angegeben werden können.

Eigenschaft Beschreibung Typen, die diese Eigenschaft unterstützen
name Der Name dieses Channels. Wenn keine name-Eigenschaft festgelegt ist, wird standardmäßig http oder tcp verwendet. Beim Registrieren von mehr als einen HttpChannel oder TcpChannel muss jeder Channel einen eindeutigen Namen aufweisen. Wenn Sie Namen ignorieren, jedoch Namenskonflikte vermeiden möchten, legen Sie diese Eigenschaft auf eine leere Zeichenfolge ("" oder String.Empty) fest. Im System sind beliebig viele Channels mit name gleich String.Empty zulässig. Diese Eigenschaft wird verwendet, um beim Aufrufen von ChannelServices.GetChannel() einen bestimmten Channel abzurufen. Einzelheiten finden Sie unter Channel. HttpChannel
HttpServerChannel
HttpClientChannel
TcpChannel
TcpClientChannel
TcpServerChannel
priority Eine ganze Zahl, die die Priorität des Channels darstellt. Je höher die Zahl ist, desto höher ist die Wahrscheinlichkeit, für die Verbindung ausgewählt zu werden. Die Standardpriorität ist 1, wobei negative Zahlen zulässig sind. HttpChannel
HttpServerChannel
HttpClientChannel
TcpChannel
TcpClientChannel
TcpServerChannel

In der folgenden Tabelle werden die Clientchanneleigenschaften aufgeführt, die angegeben werden können.

Eigenschaft Beschreibung Typen, die diese Eigenschaft unterstützen
clientConnectionLimit Eine ganze Zahl, die angibt, wie viele offene Verbindungen mit einem bestimmten Server gleichzeitig bestehen dürfen. Der Standardwert ist 2. HttpChannel
HttpClientChannel
proxyName Der Name des Proxycomputers. HttpChannel
HttpClientChannel
proxyPort Eine ganze Zahl, die den Proxyanschluss angibt. HttpChannel
HttpClientChannel
timeout Die Wartezeit in Millisekunden bis zum Timeout einer Anforderung. -1 gibt eine unbegrenzte Timeoutperiode an. HttpChannel
HttpClientChannel
machineName Eine Zeichenfolge, die den für diesen Channel verwendeten Computernamen angibt. Überschreibt den im Channeldatenobjekt angegebenen Computernamen.

Es empfiehlt sich generell, den DNS-Namen (Domain Name System) des Computers zu verwenden. Wenn jedoch die IP-Adresse für eine bestimmte NIC (Network Interface Card, Netzwerkschnittstellenkarte), wobei es sich in der Regel um eine drahtlose NIC handelt, häufig geändert wird, müssen Sie die Anwendung so konfigurieren, dass machineName verwendet wird und Remoting den Computer über DNS finden kann.

Wenn der Computername nur äußerst langsam bzw. überhaupt nicht aufgelöst wird und der Computer über mehrere physische oder virtuelle NICs verfügt (dies ist häufig der Fall bei DFÜ-Verbindungen oder VPN-Netzwerkkarten), sollten Sie die machineName-Eigenschaft auf die IP-Adresse der NIC festlegen, die derzeit für diese Verbindung verwendet wird.

HttpChannel
HttpClientChannel
TcpChannel
TcpClientChannel
allowAutoRedirect Ruft einen Wert ab, der angibt, ob die automatische Behandlung von Serverumleitungen aktiviert ist, oder legt diesen fest. HttpChannel
HttpClientChannel
credentials Ruft eine ICredentials-Implementierung ab, die die Identität des Clients darstellt, oder legt diese fest. HttpChannel
HttpClientChannel
useAuthenticatedConnectionSharing Ein boolescher Wert der angibt, dass der Serverchannel authentifizierte Verbindungen wiederverwendet, anstatt jeden eingehenden Aufruf zu authentifizieren. In der Standardeinstellung wird dieser Wert auf true festgelegt, wenn der Wert von useDefaultCredentials ebenfalls auf true festgelegt ist. Andernfalls wird der Wert auf false festgelegt. Wenn der Server die Authentifizierung erfordert wird daher jeder Aufruf authentifiziert. Dies gilt auch für die programmgesteuerte Vorgehensweise. Bei dieser wird entweder ein Objekt erstellt, das IDictionary implementiert, der Wert von credentials auf CredentialCache.DefaultCredentials festgelegt und dieser Wert an den Channelempfänger übergeben, oder es wird das IDictionary verwendet, das von der ChannelServices.GetChannelSinkProperties-Methode zurückgegeben wird.

Dieses Name/Wert-Paar wird nur von der Version 1.1 von .NET Framework auf den folgenden Plattformen unterstützt: Microsoft Windows 98, Windows NT 4.0, Windows Millennium Edition (Windows Me), Windows 2000, Windows XP Home Edition, Windows XP Professional und die Windows Server 2003-Familie.

HttpChannel
HttpClientChannel
unsafeAuthenticatedConnectionSharing Ein boolescher Wert, der angibt, dass der Client eigene Anmeldeinformationen und einen eigenen Namen der Verbindungsgruppe angibt, mit denen bzw. dem der eine authentifizierte Verbindungsgruppe erstellt. Wenn dieser Wert auf true festgelegt ist, muss der Wert von connectionGroupName genau einem authentifizierten Benutzer zugeordnet sein. Dieses Name/Wert-Paar wird ignoriert, wenn der Wert von useAuthenticatedConnectionSharing auf true festgelegt ist.

Dieses Name/Wert-Paar wird nur von der Version 1.1 von .NET Framework auf den folgenden Plattformen unterstützt: Windows 98, Windows NT 4.0, Windows Me, Windows 2000, Windows XP Home Edition, Windows XP Professional und die Windows Server 2003-Familie.

HttpChannel
HttpClientChannel
connectionGroupName Der Name, der als Name der Verbindungsgruppe auf dem Server verwendet wird, wenn der Wert von unsafeAuthenticatedConnectionSharing ebenfalls angegeben ist. Dieses Name/Wert-Paar wird ignoriert, wenn unsafeAuthenticatedConnectionSharing nicht auf true festgelegt ist. Wenn angegeben, muss dieser Name genau einem authentifizierten Benutzer zugeordnet sein.

Dieses Name/Wert-Paar wird nur von der Version 1.1 von .NET Framework auf den folgenden Plattformen unterstützt: Windows 98, Windows NT 4.0, Windows Me, Windows 2000, Windows XP Home Edition, Windows XP Professional und die Windows Server 2003-Familie.

HttpChannel
HttpClientChannel

Hinweis   Unter Windows 98 und Windows Me ist keine Sicherheits-ID verfügbar, mit der der Name der Verbindungsgruppe bei der Authentifizierung identifiziert werden kann. Aus diesem Grund ist auf diesen Plattformen nur ein Verbindungsgruppenname verfügbar.

Wenn die Anwendung die ICredentials-Implementierung bzw. explizite Werte für username, password und domain an die HttpClientChannel-Eigenschaften übergeben soll, können Sie die Freigabe von Verbindungen bei der Authentifizierung aktivieren, indem Sie das Name/Wert-Paar für unsafeAuthenticatedConnectionSharing und das Name/Wert-Paar für connectionGroupName ebenfalls übergeben, wobei der Wert von connectionGroupName nur einem authentifizierten Benutzer zugeordnet sein darf.

In der folgenden Tabelle werden die Serverchanneleigenschaften aufgeführt, die angegeben werden können.

Eigenschaft Beschreibung Typen, die diese Eigenschaft unterstützen
port Eine ganze Zahl, die den Anschluss angibt, den der Channel überwacht. HttpChannel
HttpServerChannel
TcpChannel
TcpServerChannel
suppressChannelData Ein boolescher Wert, der angibt, ob der Channel zu den Channeldaten beiträgt. HttpChannel
HttpServerChannel
TcpChannel
TcpServerChannel
useIpAddress Ein boolescher Wert, der angibt, ob im Veröffentlichungs-URL anstelle des Computernamens die IP-Adresse verwendet werden soll. In drahtlosen Netzwerken wird z. B. häufig die IP-Adresse eines tragbaren Computers bei Positionsänderungen innerhalb des Netzwerks geändert. Wenn Sie für diesen Wert false festlegen, wird anstelle der Adresse der Computername verwendet, so dass Remoteverbindungen beim Roaming nicht getrennt werden. The default is true. HttpChannel
HttpServerChannel
TcpChannel
TcpServerChannel
bindTo Eine Zeichenfolge, die die IP-Adresse der Netzwerkschnittstellenkarte (NIC) festlegt, an die der Serverchannel gebunden werden soll. HttpChannel
HttpServerChannel
TcpChannel
TcpServerChannel
machineName Eine Zeichenfolge, die den Computernamen in den Channeldaten überschreibt. Bei Angabe dieser Eigenschaft wird useIpAddress überschrieben. HttpChannel
HttpServerChannel
TcpChannel
TcpServerChannel
listen Ein boolescher Wert, der angibt, ob die Aktivierung einen Hook in IChannelReceiverHook.WantsToListen erstellen soll. HttpChannel
HttpServerChannel
rejectRemoteRequests Ein boolescher Wert, der angibt, ob Anforderungen anderer Computer zurückgewiesen werden sollen. Bei Angabe von true werden nur Remotingaufrufe des lokalen Computers zugelassen. TcpChannel
TcpServerChannel
exclusiveAddressUse Ein boolescher Wert, der angibt, ob der Channel die Wiederverwendung der Kombination aus IP-Adresse und Anschluss durch andere Anwendungen verhindert. Wenn dieser Wert auf true (den Standardwert) festgelegt ist, legt diese Eigenschaft die Serversocketoption von SocketOptionName auf SocketOptionName.ExclusiveAddressUse fest.

Diese Eigenschaft wird nur von der Version 1.1 von .NET Framework auf den folgenden Plattformen unterstützt: Windows NT 4.0 mit Service Pack 4 oder höher, Windows Me, Windows 2000, Windows XP Home Edition, Windows XP Professional und die Windows Server 2003-Familie.

Diese Eigenschaft erfordert Administratorrechte auf früheren Plattformen vor der Windows Server 2003-Familie.

HttpChannel
HttpServerChannel
TcpChannel
TcpServerChannel

In der folgenden Tabelle werden die Eigenschaften aufgeführt, die für Channelempfänger angegeben werden können.

Eigenschaft Beschreibung Typen, die diese Eigenschaft unterstützen
includeVersions Ein boolescher Wert, der angibt, ob das Formatierungsprogramm Versionsinformationen enthalten soll. BinaryClientFormatterSink
BinaryServerFormatterSink
SoapClientFormatterSink
SoapServerFormatterSink
strictBinding Gibt an, das ein empfangendes Formatierungsprogramm zuerst versucht, den Typ anhand der vollständigen Versionsinformationen zu identifizieren (sofern vorhanden), bevor lediglich der Typ- und Assemblyname ohne die Versionsinformationen verwendet wird. Die Standardeinstellung für beide vom System bereitgestellten Formatierungsprogramme lautet false. Weitere Informationen finden Sie unter <formatter>-Element (Vorlage). BinaryServerFormatterSink, SoapServerFormatterSink
metadataEnabled Ein boolescher Wert, der angibt, ob Anforderungen berücksichtigt werden sollen, die auf "?wsdl" enden, wenn sich dieser Empfänger in der Kette der Channelempfänger befindet. Die Standardeinstellung ist true. Bei false löst der Empfänger immer dann eine Ausnahme aus, wenn Metadaten für ein Objekt in der Anwendungsdomäne angefordert werden.

Diese Eigenschaft wird nur von der Version 1.1 von .NET Framework auf den folgenden Plattformen unterstützt: Windows 98, Windows NT 4.0, Windows Me, Windows 2000, Windows XP Home Edition, Windows XP Professional und die Windows Server 2003-Familie.

SdlChannelSink
remoteApplicationMetadataEnabled Ein boolescher Wert, der angibt, ob Anforderungen des Objekt-URI (Uniform Resource Identifier) "RemoteApplicationMetadata?wsdl" berücksichtigt werden sollen, der WSDL (Web Services Description Language) mit einer Beschreibung aller von der Anwendungsdomäne veröffentlichten Objekte zurückgibt. Bei false wird bei jeder Anforderung an "RemoteApplicationMetadata.rem" eine Ausnahme ausgelöst. Alle anderen "?wsdl"-Anforderungen von bestimmten Objekt-URIs werden berücksichtigt. Bei true wird die Anforderung globaler Metadaten berücksichtigt. Die Standardeinstellung ist false.

Diese Eigenschaft wird nur von der Version 1.1 von .NET Framework auf den folgenden Plattformen unterstützt: Windows 98, Windows NT 4.0, Windows Me, Windows 2000, Windows XP Home Edition, Windows XP Professional und die Windows Server 2003-Familie.

SdlChannelSink
typeFilterLevel Ein Zeichenfolgenwert, der die Ebene der automatischen Deserialisierung angibt, die von einem Serverchannel unternommen wird. Unterstützte Werte sind Low (der Standardwert) und Full. Weitere Informationen über Deserialisierungsebenen finden Sie unter Automatische Deserialisierung in .NET Remoting.

Diese Eigenschaft wird nur von der Version 1.1 von .NET Framework auf den folgenden Plattformen unterstützt: Windows 98, Windows NT 4.0, Windows Me, Windows 2000, Windows XP Home Edition, Windows XP Professional und die Windows Server 2003-Familie.

BinaryServerFormatterSink
SoapServerFormatterSink

Siehe auch

Konfiguration | Remoteobjektkonfiguration | Schema für Remoteeinstellungen