Condividi tramite


Handle completamente associati e parzialmente

Quando si usano endpoint dinamici, le librerie di runtime ottengono le informazioni sull'endpoint in base alle esigenze. Le librerie di runtime fanno la distinzione tra un handle completamente associato (uno che include le informazioni sull'endpoint) e un handle parzialmente associato (uno che non include informazioni sull'endpoint).

La libreria di runtime client deve convertire l'handle parzialmente associato in un handle completamente associato prima che il client possa eseguire l'associazione al server. La libreria di runtime client tenta di convertire l'handle parzialmente associato per l'applicazione client ottenendo le informazioni sull'endpoint, come illustrato di seguito:

  • Dalla specifica dell'interfaccia del client
  • Da un servizio di mapping degli endpoint in esecuzione nel server

Se il client tenta di usare un handle parzialmente associato quando le informazioni sull'endpoint non sono disponibili nella specifica dell'interfaccia e il mapper dell'endpoint del server non dispone di informazioni sull'endpoint server, il client non avrà informazioni sufficienti per effettuare la chiamata alla procedura remota e tale chiamata avrà esito negativo. Per evitare questo problema, è necessario registrare l'endpoint nel mapper dell'endpoint quando l'applicazione distribuita usa handle parzialmente associati. Per altre informazioni sul mapper dell'endpoint, vedere Specifica di endpoint dinamici.

Quando una chiamata di procedura remota ha esito negativo, l'applicazione client può chiamare RpcBindingReset per rimuovere le informazioni sull'endpoint non aggiornate. Quando il client tenta di chiamare la routine remota, la libreria di runtime client tenta di convertire nuovamente l'handle completamente associato in un handle parzialmente associato. Ciò è utile quando il server è stato arrestato e riavviato usando un endpoint dinamico diverso.