Share via


Channelregistrierung

Im .NET-Remotesystem wird der Datentransport durch Channelobjekte bereitgestellt, wenn ein Client eine Methode für ein Remoteobjekt aufruft. Der Remotedienst unterstützt eventuell mehr als einen Channel. In diesem Fall liegt es in der Verantwortung der Clientanwendung, den Channel auszuwählen, der den Anforderungen am ehesten entspricht. Wenn Sie in der Clientkonfigurationsdatei keinen Channel angeben und der Client eine Methode für ein Remoteobjekt aufruft, lädt das .NET-Remotingsystem eine der standardmäßigen Channelimplementierungen (HttpChannel oder TcpChannel), sofern eine der beiden das Netzwerkprotokoll des Clients unterstützt. Wenn der Client jedoch eine Rückruffunktion oder ein Rückrufereignis erwartet, müssen Sie einen Clientchannel angeben, der diese Rückruffunktion empfängt.

Sie haben zwei Möglichkeiten, einen Channel zu registrieren. Sie können entweder eine Channelvorlage deklarieren und dann in der Anwendung auf diesen Channel verweisen oder sämtliche Channelinformationen direkt in der Anwendung angeben. Die standardmäßigen Channelvorlagen in der Datei Machine.config dürften für die meisten Anwendungen ausreichen. Auf sie kann vom <channels>-Tag (innerhalb des <application>-Tags) verwiesen werden, indem das ref -Attribut des <channel>-Tags verwendet und entweder "tcp" oder "http" angegeben wird. Bei der Verwendung von HttpChannel ist es nicht notwendig, ein port-Attribut anzugeben. Wenn Sie dagegen TcpChannel verwenden, müssen Sie das port-Attribut angeben.

Wenn die Anwendung ein Serverobjekt verfügbar macht, müssen Sie einen Channel registrieren, sodass Clientanwendungen mit dem Objekt kommunizieren können. Dies kann entweder programmgesteuert, indem Sie die ChannelServices.RegisterChannel-Methode verwenden, oder durch die Registrierung des Channels in der Konfigurationsdatei erfolgen.

Wenn die Anwendung Objekte verwendet, müssen Sie einen Channel registrieren, der in der Lage ist, auf diese Objekte zuzugreifen (dies ist zwingend notwendig, wenn Sie damit rechnen, eine Rückruffunktion oder ein Rückrufereignis zu empfangen), sofern das Dienstobjekt nicht einen der in der Computerkonfigurationsdatei aufgelisteten standardmäßigen Clientchannels verwendet.

Ausführliche Beispiele finden Sie unter Remotingbeispiel: Channelsenkenanbieter sowie unter dem <channel>-Instanzelement und dem <channel>-Vorlagenelement.

Channelsenken

Channelsenken ermöglichen es den Entwicklern, die Serialisierung und die Meldungsübermittlung zwischen dem Client und den Remotediensten anzupassen. Channelsenken werden von Senkenanbietern erstellt, und sowohl die Clientsenkenanbieter als auch die Serversenkenanbieter können in der Konfigurationsdatei angegeben werden. Serverchannelsenken werden aufgerufen, wenn Meldungen vom bzw. an den Server gesendet werden, und sie werden innerhalb des <serverProviders>-Elements angegeben. Clientsenken werden aufgerufen, wenn Meldungen vom bzw. an den Client gesendet werden, und sie werden innerhalb des <clientProviders>-Elements angegeben.

Channel müssen über eine Formatierungssenke verfügen. Formatierungssenken werden zum Serialisieren von Meldungen verwendet. In .NET Framework sind Formatierungsprogramme für die binäre Serialisierung und für die SOAP-Serialisierung enthalten.

Beachten Sie unbedingt, dass das .NET-Remotesystem nach Angabe eines benutzerdefinierten Formatierungsprogramms davon ausgeht, dass Sie alle Channels in der gewünschten Reihenfolge angeben. Wenn Sie einen benutzerdefinierten Channel angeben, der ein benutzerdefiniertes Formatierungsprogramm verwendet, müssen Sie also auch angeben, welche anderen Anbieter in der Channelsenkenkette enthalten sein sollen. Es werden keine standardmäßigen Channelsenken hinzugefügt.

Siehe auch

Aufgaben

Gewusst wie: Erstellen einer Channelvorlage in einer Konfigurationsdatei

Referenz

System.Runtime.Remoting.RemotingConfiguration Class

Konzepte

Konfiguration von Remoteanwendungen
Remoteobjektkonfiguration

Weitere Ressourcen

Registrieren von Remoteobjekten mit Konfigurationsdateien
.Übersicht über .NET Framework-Remoting
.Übersicht über .NET Framework-Remoting

Footer image

Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.