Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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-Remotesystem 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, so dass 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: Channelempfängeranbieter sowie unter dem <channel>-Instanzelement und dem <channel>-Vorlagenelement.
Channelempfänger
Channelempfänger ermöglichen es den Entwicklern, die Serialisierung und die Meldungsübermittlung zwischen dem Client und den Remotediensten anzupassen. Channelempfänger werden von Empfängerprovidern erstellt, und sowohl die Clientempfängerprovider als auch die Serverempfängerprovider können in der Konfigurationsdatei angegeben werden. Serverchannelempfänger werden aufgerufen, wenn Meldungen vom bzw. an den Server gesendet werden, und sie werden innerhalb des <serverProviders>-Elements angegeben. Clientempfänger werden aufgerufen, wenn Meldungen vom bzw. an den Client gesendet werden, und sie werden innerhalb des <clientProviders>-Elements angegeben.
Channel müssen über einen Formatierungsempfänger verfügen. Formatierungsempfänger werden zum Serialisieren von Meldungen verwendet. In .NET Framework sind Formatierungsprogramme für die binäre Serialisierung und für die SOAP-Serialisierung enthalten. Im folgenden Beispiel wird gezeigt, wie eine Channelvorlage in einer Konfigurationsdatei erstellt wird.
<configuration>
<system.runtime.remoting>
<application>
</application>
<channels>
<channel
id="MyChannel"
type="MyChannel,MyChannelAssembly"
>
<clientProviders>
<formatter ref="soap">
</formatter>
<provider
type="Channels.AuthenticationSink,MyChannels"
/>
</clientProviders>
</channel>
</channels>
</system.runtime.remoting>
</configuration>
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 Provider in der Channelempfängerkette enthalten sein sollen. Es werden keine standardmäßigen Channelempfänger hinzugefügt.
Siehe auch
Registrieren von Remoteobjekten mit Konfigurationsdateien | System.Runtime.Remoting.RemotingConfiguration-Klasse | Übersicht über .NET Remoting | Übersicht über .NET Remoting | Konfiguration | Remoteobjektkonfiguration