Freigeben über


Asynchrones Remoting

Dieses Thema bezieht sich auf eine veraltete Technologie, die zum Zwecke der Abwärtskompatibilität mit vorhandenen Anwendungen beibehalten wird und nicht für die neue Entwicklung empfohlen wird. Verteilte Anwendungen sollten jetzt mit  Windows Communication Foundation (WCF) entwickelt werden.

Mit Ausnahme der Konfiguration und den Anforderungen des .NET-Remoting selbst ist die asynchrone Programmierung in einem Remoteszenario identisch mit der asynchronen Programmierung in einer Einzelanwendungsdomäne oder einem Einzelkontext. Ein vollständiges Beispiel mit .NET-Remoting sowie synchronen und asynchronen Delegaten finden Sie unter Remotingbeispiel: Asynchrones Remoting.

Die Verwendung der asynchronen Programmierung in einem .NET-Remoteszenario hat wie die asynchrone Programmierung in einer Einzelanwendungsdomäne folgende Bedeutung:

  • Der Aufrufer entscheidet, ob ein bestimmer Remoteaufruf asynchron ist.

  • Remotetypen müssen asynchrones Verhalten durch ihre Clients nicht explizit unterstützen.

  • Die Laufzeit setzt vollständige Typsicherheit durch.

  • Sie müssen die System.Threading-Objekte auf geeignete Weise verwenden, um die Methoden in den Wartezustand zu versetzen oder zu synchronisieren.

In einer Anwendung, die über Anwendungsdomänen oder Kontextgrenzen hinweg Aufrufe durchführt, müssen Sie die Clientanwendung für .NET-Remoting so konfigurieren, dass die Anwendung Remoteaufrufe vom Server empfangen kann (dies erfolgt durch Angabe des Anschlusses "0" auf dem Clientchannel.) Diese Anforderung ist darauf zurückzuführen, dass es nach einem asynchronen Aufruf keine Möglichkeit gibt, die Ergebnisse des Aufrufs abzurufen, ohne dem Server einen Rückruf zum Client zu erlauben.

Der Client muss MarshalByRefObject nicht erweitern oder selbst einen Remotetyp konfigurieren, er muss ansonsten aber die gleichen Regeln wie jeder beliebige Remotetyp befolgen, der als Server vorgesehen ist:

  • Die Rückrufmethode muss eine Instanzenmethode sein. Statische Methodenaufrufe sind nicht remote.

  • Ein Channel muss registriert sein, um die Rückruffunktion zu überwachen.

Siehe auch

Aufgaben

Vorgehensweise: Asynchrones Aufrufen der Methoden eines Remoteobjekts

Konzepte

Probleme beim asynchronen Aufrufen von Methoden für Remoteobjekte
Remotingbeispiel: Asynchrones Remoting
Konfiguration von Remoteanwendungen

Weitere Ressourcen

Übersicht über .NET Framework-Remoting