Vollständig und teilweise gebundene Handles
Wenn Sie dynamische Endpunkte verwenden, rufen die Laufzeitbibliotheken Endpunktinformationen nach Bedarf ab. Die Laufzeitbibliotheken unterscheiden zwischen einem vollständig gebundenen Handle (ein Handle, das Endpunktinformationen enthält) und einem teilweise gebundenen Handle (ein Handle, das keine Endpunktinformationen enthält).
Die Clientlaufzeitbibliothek muss das teilweise gebundene Handle in ein vollständig gebundenes Handle konvertieren, bevor der Client eine Bindung an den Server herstellen kann. Die Clientlaufzeitbibliothek versucht, das teilweise gebundene Handle für die Clientanwendung zu konvertieren, indem sie die Endpunktinformationen wie folgt erhält:
- Aus der Schnittstellenspezifikation des Clients
- Aus 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 die Endpunktzuordnung des Servers keine Informationen zum Serverendpunkt enthält, verfügt der Client nicht über genügend Informationen, um seinen Remoteprozeduraufruf durchzuführen, und dieser Aufruf schlägt fehl. Um dies zu verhindern, müssen Sie den Endpunkt in der Endpunktzuordnung 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 Clientlaufzeitbibliothek erneut, das vollständig gebundene Handle in ein teilweise gebundenes Handle zu konvertieren. Dies ist nützlich, wenn der Server mithilfe eines anderen dynamischen Endpunkts beendet und neu gestartet wurde.