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.
.NET Remoting stellt eine der Möglichkeiten zum Herstellen der Kommunikation zwischen Anwendungsdomänen dar, die .NET Framework verwenden. Bevor Sie ein bestimmtes Entwicklungsmodell für die verteilte Anwendung auswählen müssen Sie die für die Anwendung erforderlichen Features bestimmen und überlegen, welche Ressourcen Ihnen zur Verfügung stehen. Eine Anleitung hierzu finden Sie unter Auswahl von Kommunikationsoptionen in .NET. In der nachfolgenden Aufgabenliste werden die grundlegenden Schritte beschrieben, die zur Erstellung einer einfachen .NET Remoting-Anwendung ausgeführt werden müssen.
Hostaufgaben
Die folgenden Schritte sind erforderlich, um einen Dienst für die Verwendung außerhalb der eigenen Anwendungsdomäne zu veröffentlichen:
Entwerfen Sie den Dienst.
- Wählen Sie eine Hostanwendungsdomäne.
- Wählen Sie ein Aktivierungsmodell.
- Wählen Sie einen Channel und Anschluss.
- Entscheiden Sie, wie der Client die Metadaten des Dienstes empfangen soll.
Implementieren Sie die Hostanwendungsdomäne. Als Remotehosts kommen Windows-Dienste, Konsolenanwendungen, Windows Forms-Anwendungen, Prozesse von Internet-Informationsdienste (IIS) oder ASP.NET-Anwendungen in Frage. Die Anforderungen sind für die einzelnen Anwendungstypen unterschiedlich. Lesen Sie deshalb die Dokumentation, in der das Erstellen des gewünschten Anwendungstyps beschrieben wird. Weitere Informationen finden Sie unter Erstellen von Anwendungen.
Konfigurieren Sie im Host das Remotingsystem, indem Sie den Aktivierungsmodus und weitere Informationen wie Anwendungsname und Endpunkt angeben. Wenn Sie das System programmgesteuert konfigurieren möchten, müssen Sie keine Konfigurationsdatei verwenden. Wenn Sie eine Konfigurationsdatei verwenden, müssen Sie diese Datei in das System laden, indem Sie RemotingConfiguration.Configure aufrufen.
Erstellen Sie im Host den geeigneten Channel, und registrieren Sie ihn beim System, indem Sie ChannelServices.RegisterChannel aufrufen. Wenn Sie eine Konfigurationsdatei verwenden, müssen Sie diese Datei in das System laden, indem Sie RemotingConfiguration.Configure aufrufen.
Der Host kann ohne die veröffentlichte Klasse nicht ausgeführt werden. Die Art der Erstellung der Hostumgebung mit der Dienstimplementierung hängt jedoch davon ab, wie die öffentliche Schnittstelle des Dienstes freigegeben werden soll.
Wenn Sie einen XML-Webdienst (unter Verwendung eines HttpChannel mit der standardmäßigen SOAP-Serialisierung) implementieren, hat der Client drei Möglichkeiten, die Informationen abzurufen:
Extrahieren der Informationen vom Endpunkt mit Hilfe des Soapsuds-Tools (Soapsuds.exe).
Downloaden einer Assembly, die die Metadaten enthält.
Downloaden des Quellcodes für eine Schnittstelle.
**Hinweis **Die Verwendung des Quellcodes ist in zwei Fällen möglich: Wenn Sie mit Serveraktivierung arbeiten, können Sie den Quellcode einer Implementierung, einer abstrakten Klasse oder einer Schnittstelle nur dann verwenden, wenn Sie diesen Code in einer Assembly kompilieren, die denselben Namen trägt wie die eigentliche Implementierung auf dem Server. (Die Typidentität basiert sowohl auf dem Typnamen als auch auf dem Assemblynamen.) Wenn Sie mit Clientaktivierung arbeiten, müssen Sie eine Klasse erstellen, die äußerlich mit der eigentlichen Serverimplementierung identisch ist. Insbesondere muss sich die Clientklasse in einer Assembly mit demselben Namen befinden, dieselbe Klassendeklaration aufweisen und Member enthalten, die dieselben Signaturen aufweisen wie die auf dem Server. Die Implementierung des Ersatzclients ist nicht von Bedeutung. Wenn die Metadaten übereinstimmen, wird der Remoteserver aufgerufen. Soapsuds.exe erstellt eine Ersatzklasse für den Client, um Ihnen diesen Arbeitsschritt zu ersparen.
Wenn ein anderer Diensttyp implementiert wird (z. B. mit einem TcpChannel-Objekt), hat der Client zwei Möglichkeiten, die Informationen abzurufen:
Downloaden einer Assembly, die die Metadaten enthält.
Downloaden des Quellcodes für eine Schnittstelle.
**Hinweis **Die Verwendung des Quellcodes ist in zwei Fällen möglich: Wenn Sie mit Serveraktivierung arbeiten, können Sie den Quellcode einer Implementierung, einer abstrakten Klasse oder einer Schnittstelle nur dann verwenden, wenn Sie diesen Code in einer Assembly kompilieren, die denselben Namen trägt wie die eigentliche Implementierung auf dem Server, einschließlich vorhandener Versionsinformationen. (Die Typidentität basiert sowohl auf dem Typnamen als auch auf dem Assemblynamen.) Wenn Sie mit Clientaktivierung arbeiten, müssen Sie eine Klasse erstellen, die äußerlich mit der eigentlichen Serverimplementierung identisch ist. Insbesondere muss sich die Clientklasse in einer Assembly mit demselben Namen befinden, dieselbe Klassendeklaration aufweisen und Member enthalten, die dieselben Signaturen aufweisen wie die auf dem Server. Die Implementierung des Ersatzclients ist nicht von Bedeutung. Wenn die Metadaten übereinstimmen, wird der Remoteserver aufgerufen.
In jedem Fall hängt die Art und Weise, in der Sie den Dienst in Ihre eigene Hostanwendungsdomäne verpacken, davon ab, wie Sie die für die Verwendung des Dienstes durch andere erforderlichen Metadaten veröffentlichen möchten.
Clientaufgaben
Die folgenden grundlegenden Schritte sind erforderlich, um einen Dienst für die Verwendung außerhalb der eigenen Anwendungsdomäne zu verwenden:
- Entwerfen Sie den Client.
- Wählen Sie eine Clientanwendungsdomäne.
- Legen Sie den Aktivierungsmodus und entweder den Clientaktivierungs-URL oder den URL des bekannten Objekts des Remotetyps fest.
- Überlegen Sie, ob Sie einen Channel und Anschluss registrieren müssen.
- Ermitteln Sie die Metadaten des Remotetyps.
- Implementieren Sie die Clientanwendungsdomäne. Als Remotehosts kommen Windows-Dienste, Konsolenanwendungen, Windows Forms-Anwendungen, Prozesse von Internet-Informationsdienste (IIS) oder ASP.NET-Anwendungen in Frage. Die Anforderungen sind für die einzelnen Anwendungstypen unterschiedlich. Lesen Sie deshalb die Dokumentation, in der das Erstellen des gewünschten Anwendungstyps beschrieben wird. Weitere Informationen finden Sie unter Erstellen von Anwendungen.
- Konfigurieren Sie das Clientremotingsystem mit dem Aktivierungsmodus und weiteren Typinformationen wie Anwendungsname und Objekt-URI (Uniform Resource Identifier). Wenn Sie das System programmgesteuert konfigurieren möchten, müssen Sie keine Konfigurationsdatei verwenden. Wenn Sie eine Konfigurationsdatei verwenden, müssen Sie diese Datei in das System laden, indem Sie RemotingConfiguration.Configure aufrufen.
- Erstellen Sie den geeigneten Channel, und registrieren Sie diesen beim System, indem Sie ChannelServices.RegisterChannel aufrufen. Wenn Sie eine Konfigurationsdatei verwenden, müssen Sie diese in das System laden, indem Sie RemotingConfiguration.Configure aufrufen.
Siehe auch
Erstellen einer grundlegenden .NET Remoting-Anwendung | Auswahl von Kommunikationsoptionen in .NET | Übersicht über .NET Remoting | Remotingbeispiele