Teilen über


Vollständig und teilweise gebundene Handles

Wenn Sie dynamische Endpunkte verwenden, erhalten die Laufzeitbibliotheken Endpunktinformationen bei Bedarf. Die Laufzeitbibliotheken unterscheiden zwischen einem vollständig gebundenen Handle (eines, das Endpunktinformationen enthält) und einem teilweise gebundenen Handle ( eines, das keine Endpunktinformationen enthält).

Die Clientausführungsbibliothek muss das teilweise gebundene Handle in ein vollständig gebundenes Handle konvertieren, bevor der Client eine Bindung an den Server herstellen kann. Die Client-Laufzeitbibliothek versucht, das teilweise gebundene Handle für die Clientanwendung zu konvertieren, indem die Endpunktinformationen abgerufen werden, wie gezeigt:

  • Aus der Schnittstellenspezifikation des Clients
  • Von einem Endpunktzuordnungsdienst, der auf dem Server ausgeführt wird

Wenn der Client versucht, ein teilweise gebundenes Handle zu verwenden, wenn die Endpunktinformationen in der Schnittstellenspezifikation nicht verfügbar sind und der Endpunkt-Mapper des Servers keine Informationen über den Serverendpunkt enthält, verfügt der Client nicht über genügend Informationen, um den Remoteprozeduraufruf durchzuführen, und dieser Aufruf schlägt fehl. Um dies zu verhindern, müssen Sie den Endpunkt im Endpunkt-Mapper registrieren, wenn Ihre verteilte Anwendung teilweise gebundene Handles verwendet. Weitere Informationen zur Endpunktzuordnung finden Sie unter Angeben dynamischer Endpunkte.

Wenn ein Remoteprozeduraufruf fehlschlägt, kann die Clientanwendung RpcBindingReset- aufrufen, um veraltete Endpunktinformationen zu entfernen. Wenn der Client versucht, die Remoteprozedur aufzurufen, versucht die Clientausführungsbibliothek erneut, das vollständig gebundene Handle in ein teilweise gebundenes Handle zu konvertieren. Dies ist nützlich, wenn der Server mit einem anderen dynamischen Endpunkt beendet und neu gestartet wurde.