Freigeben über


Auswählen eines Channels

Die .NET Framework Remoting-Infrastruktur bietet folgende Channelimplementierungen:

IpcChannel

Die IpcChannel-Klasse verwendet Named Pipes für die Bereitstellung einer sehr schnellen prozessübergreifenden Kommunikation für mehrere Prozessanwendungen auf einem Computer. IpcChannel führt folgende Funktionen aus:

  • Kommuniziert mithilfe von Named Pipes zwischen einem Sender und einem Empfänger.

  • Unterstützt die Codierung von Nutzlasten im binären Format und mit dem Serialisierungsformat nach Industriestandard SOAP.

  • Generiert und verwendet ChannelDataStore für Objektverweise.

  • Unterstützt Identitätswechsel und Delegierung.

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

Verwenden Sie IpcChannel, wenn eine Anwendung mit einer anderen 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 abrufen und Identitätswechsel sowie Delegierung für die Steuerung des Zugriffs auf das Remoteobjekt verwenden. Diese Funktionalität ist insbesondere zwischen der zweiten und dritten Stufe einer dreistufigen Anwendung nützlich, die mit guter Leistung unter Belastung ausgeführt werden muss.

TcpChannel

Die TcpChannel-Klasse verwendet ein binäres Formatierungsprogramm, um alle Nachrichten in einen binären Stream zu serialisieren und diesen mit dem TCP-Protokoll zum Ziel-URI (Uniform Resource Identifier) zu übertragen. TcpChannel führt folgende Funktionen aus:

  • Kommuniziert mithilfe von TCP-Sockets zwischen einem Sender und einem Empfänger.

  • Unterstützt die Codierung von Nutzlasten im binären Format und mit dem Serialisierungsformat nach Industriestandard SOAP.

  • 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 zum jeweiligen Zeitpunkt Anforderungen an einen anderen Server ausgeben, und speichert diese zwischen. Socketverbindungen werden nach 15 bis 20 Sekunden ohne Aktivitäten auf dem Client geschlossen.

Wenn Sie mehrere Anwendungen erstellen, die .NET Framework Remoting verwenden, kann es leicht vorkommen, dass versehentlich HttpChannel verwendet wird, um eine Verbindung mit einer Serveranwendungsdomäne herzustellen, die zur Überwachung TcpChannel nutzt. Wenn Sie diese Verbindung herstellen, empfängt der Client folgende Ausnahme: "Die zugrunde liegende Verbindung wurde geschlossen: Unbekannter Fehler beim Empfangen." Wenn ein Client diese Ausnahme empfängt, sollten Sie überprüfen, ob die Channels des Clients und des Servers übereinstimmen.

HttpChannel

Die HttpChannel-Klasse überträgt Nachrichten zu und von Remoteobjekten mit dem SOAP-Protokoll. Alle Nachrichten werden über ein SoapFormatter-Objekt übergeben, in dem die Nachricht in XML umgewandelt und serialisiert wird. Die erforderlichen SOAP-Header werden dabei dem Stream hinzugefügt. Falls das binäre Formatierungsprogramm ebenfalls angegeben wird, wird ein binärer Datenstream erstellt. Der Datenstream wird dann mit dem HTTP-Protokoll zum Ziel-URI (Uniform Resource Identifier) übertragen. HttpChannel ist kompatibel mit SOAP 1.1 und führt die folgenden Funktionen aus:

  • Kommuniziert zwischen Sender und Empfänger und verwendet das HTTP-Protokoll für die Übertragung.

  • Unterstützt die Codierung von Nutzlasten in SOAP, einem XML-Codierungsstandard, sowie ein binäres Format.

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

  • Generiert und verwendet ChannelDataStore für Objektverweise.

  • Unterstützt Identitätswechsel und Delegierung.

  • Unterstützt SSPI-Verschlüsselung.

Hinweis

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

HttpChannel öffnet jeweils nur eine festgelegte Anzahl von Verbindungen zu einem angegebenen Server. Die Standardeinstellung sind zwei Verbindungen. Mit dem clientConnectionLimit-Attribut in einer Anwendungskonfigurationsdatei können Sie die Standardeinstellung jedoch ändern.

Wenn Sie mehrere Anwendungen erstellen, die .NET Framework Remoting verwenden, kann es leicht vorkommen, dass versehentlich HttpChannel verwendet wird, um eine Verbindung mit einer Serveranwendungsdomäne herzustellen, die zur Überwachung TcpChannel nutzt. Wenn Sie diese Verbindung herstellen, empfängt der Client folgende Ausnahme: "Die zugrunde liegende Verbindung wurde geschlossen: Unbekannter Fehler beim Empfangen." Wenn ein Client diese Ausnahme empfängt, sollten Sie überprüfen, ob die Channels des Clients und des Servers übereinstimmen.

Siehe auch

Referenz

HttpChannel
TcpChannel
IpcChannel

Konzepte

Channel