Freigeben über


Grundlegende Aufgabenliste für Remoting

.NET Remoting stellt eine der Möglichkeiten zum Herstellen der Kommunikation zwischen Anwendungsdomänen mit .NET Framework dar. 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 Auswählen 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:

  1. Entwerfen Sie den Dienst.

    1. Wählen Sie eine Hostanwendungsdomäne aus.

    2. Wählen Sie ein Aktivierungsmodell aus.

    3. Wählen Sie einen Channel und einen Port aus.

    4. Entscheiden Sie, wie der Client die Metadaten des Dienstes abrufen soll.

  2. Implementieren Sie die Hostanwendungsdomäne. Als Remotehosts kommen Windows-Dienste, Konsolenanwendungen, Windows Forms-Anwendungen, Prozesse von Internetinformationsdienste (Internet Information Services, IIS) oder ASP.NET-Anwendungen infrage. 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 Windows-basierte Anwendungen oder ASP.NET-Webanwendungen in .NET Framework. Konfigurieren Sie im Host das Remotingsystem, indem Sie den Aktivierungsmodus und weitere Informationen wie den Anwendungsnamen und den 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.

  3. 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.

  4. 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 von HttpChannel mit der standardmäßigen SOAP-Serialisierung) implementieren, hat der Client drei Möglichkeiten, die Informationen abzurufen:

    • Extrahieren der Informationen vom Endpunkt mithilfe 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 die Serveraktivierung verwenden, 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 die Clientaktivierung verwenden, 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 die Serveraktivierung verwenden, 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 die Clientaktivierung verwenden, 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:

  1. Entwerfen Sie den Client.

    1. Wählen Sie eine Clientanwendungsdomäne aus.

    2. Legen Sie den Aktivierungsmodus und entweder den Clientaktivierungs-URL oder den URL des bekannten Objekts des Remotetyps fest.

    3. Überlegen Sie, ob Sie einen Channel und Port registrieren müssen.

    4. Ermitteln Sie die Metadaten des Remotetyps.

  2. Implementieren Sie die Clientanwendungsdomäne. Als Remotehosts kommen Windows-Dienste, Konsolenanwendungen, Windows Forms-Anwendungen, Prozesse von Internetinformationsdienste (Internet Information Services, IIS) oder ASP.NET-Anwendungen infrage. 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 Windows-Anwendungen oder ASP.NET-Webanwendungen in .NET Framework.

  3. Konfigurieren Sie das Clientremotingsystem mit dem Aktivierungsmodus und weiteren Typinformationen wie dem Anwendungsnamen und dem 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.

  4. 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 Datei in das System laden, indem Sie RemotingConfiguration.Configure aufrufen.

Siehe auch

Konzepte

Auswählen von Kommunikationsoptionen in .NET

Weitere Ressourcen

Erstellen einer einfachen .NET Framework Remoting-Anwendung
Übersicht über .NET Framework Remoting
Remotingbeispiele