Freigeben über


Auswählen eines Channels

Die .NET Framework-Remoteinfrastruktur stellt die folgenden Channelimplementierungen bereit:

IpcChannel

Die IpcChannel-Klasse stellt über Named Pipes eine prozessübergreifende Hochgeschwindigkeitskommunikation für mehrere Prozessanwendungen auf demselben Computer bereit. IpcChannel:

  • Kommuniziert über Named Pipes zwischen Absender und Empfänger.

  • Unterstützt das Codierungsaufkommen im Binärformat und das SOAP-Serialisierungsformat nach Industriestandard.

  • Generiert und verwendet ChannelDataStore für Objektverweise.

  • Unterstützt Identitätswechsel und Delegierung.

  • Unterstützt Zugriffssteuerungslisten (ACL) auf der Named Pipe für eine erweiterte Zugriffssteuerung.

Verwenden Sie IpcChannel, wenn eine Anwendung mit einer anderen Anwendung kommunizieren muss, die in einem anderen Prozess auf demselben Computer ausgeführt wird. Da IpcChannel Named Pipes verwendet, können Anwendungen im Allgemeinen die höchste Kommunikationsleistung erzielen und den Zugriff auf das Remoteobjekt mit Identitätswechel und Delegierung steuern. Diese Funktion ist besonders nützlich für die zweite und dritte Ebene einer Anwendung mit drei Ebenen, die unter Belastung gut funktionieren muss.

TcpChannel

Die TcpChannel-Klasse verwendet ein binäres Formatierungsprogramm, um alle Nachrichten in einen binären Stream zu serialisieren und mithilfe von TCP an den Ziel-URI (Uniform Resource Identifier) zu übertragen. TcpChannel führt die folgenden Funktionen aus:

  • Kommuniziert mit TCP-Sockets zwischen Absender und Empfänger.

  • Unterstützt das Codierungsaufkommen im Binärformat und das SOAP-Serialisierungsformat nach Industriestandard.

  • Generiert und verwendet ChannelDataStore für Objektverweise.

  • Unterstützt Identitätswechsel und Delegierung.

  • Unterstützt SSPI-Verschlüsselung.

TcpChannel öffnet so viele Verbindungen wie Threads vorhanden sind, die derzeit Anforderungen an einen anderen Server stellen, und speichert sie zwischen. Socketverbindungen werden nach 15 bis 20 Sekunden der Inaktivität auf dem Client geschlossen.

Wenn Sie eine Reihe von Anwendungen erstellen, die .NET Framework-Remoting verwenden, kann es leicht vorkommen, dass HttpChannel irrtümlicherweise zum Herstellen einer Verbindung mit einer Serveranwendungsdomäne verwendet wird, die TcpChannel zur Überwachung nutzt. Wenn Sie diese Verbindung herstellen, empfängt der Client folgende Ausnahme: "Die zugrunde liegende Verbindung wurde geschlossen: Unbekannter Fehler beim Empfangen". Wenn Sie über einen Client verfügen, der diese Ausnahme empfängt, müssen Sie den Client und den Server auf nicht übereinstimmende Channels überprüfen.

HttpChannel

Die HttpChannel-Klasse überträgt Nachrichten mithilfe von SOAP an Remoteobjekte bzw. von Remoteobjekten. Alle Nachrichten werden über SoapFormatter übergeben, wo die Nachricht in das XML-Format geändert und serialisiert wird; außerdem werden dem Stream die erforderlichen SOAP-Headers hinzugefügt. Wird das binäre Formatierungsprogramm ebenfalls angegeben, wird ein Binärdatenstrom erstellt. Der Datenstrom wird dann mit HTTP an den Ziel-URI übertragen. HttpChannel ist kompatibel mit SOAP 1.1 und führt die folgenden Funktionen aus:

  • Kommuniziert mit HTTP als Transportprotokoll zwischen Absender und Empfänger.

  • Unterstützt das Codierungsaufkommen in SOAP, einem XML-Codierungsstandard und Binärformat.

  • Legt den Empfänger für den Empfang von HTTP-Anforderungen und für das Senden von HTTP-Antworten in ASP.NET und auf einem TCP-Socket fest.

  • Generiert und verwendet ChannelDataStore für Objektverweise.

  • Unterstützt Identitätswechsel und Delegierung.

  • Unterstützt die SSPI-Verschlüsselung.

NoteHinweis:

Wenn Sie HttpChannel auf einem Client mit Microsoft Internet Explorer verwenden möchten, können Sie die automatische Konfiguration der Proxyeinstellungen in Internet Explorer nicht festlegen. Stattdessen müssen Sie die Proxyeinstellungen in Internet Explorer explizit festlegen.

HttpChannel öffnet immer nur eine festgelegte Anzahl von Verbindungen mit einem bestimmten Server. Der Standardwert ist 2. Sie können den Standardwert aber auch mit dem clientConnectionLimit-Attribut in einer Anwendungskonfigurationsdatei ändern.

Wenn Sie eine Reihe von Anwendungen erstellen, die .NET Framework-Remoting verwenden, kann es leicht vorkommen, dass HttpChannel irrtümlicherweise zum Herstellen einer Verbindung mit einer Serveranwendungsdomäne verwendet wird, die TcpChannel zur Überwachung nutzt. Wenn dies der Fall ist, empfängt der Client folgende Ausnahme: "Die zugrunde liegende Verbindung wurde geschlossen: Unbekannter Fehler beim Empfangen". Wenn Sie über einen Client verfügen, der diese Ausnahme empfängt, müssen Sie den Client und den Server auf nicht übereinstimmende Channels überprüfen.

Siehe auch

Referenz

HttpChannel
TcpChannel
IpcChannel

Konzepte

Channels

Footer image

Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.