Pubblicazione di metadati
I servizi Windows Communication Foundation (WCF) pubblicano metadati tramite la pubblicazione di uno o più endpoint dei metadati. La pubblicazione di metadati del servizio rende disponibili i metadati utilizzando protocolli standard, ad esempio le richieste WS-MetadataExchange (MEX) e HTTP/GET. Gli endpoint dei metadati sono simili ad altri endpoint del servizio per indirizzo, associazione e contratto e possono essere aggiunti a un host del servizio tramite configurazione o codice imperativo.
Pubblicazione di endpoint dei metadati
Per pubblicare endpoint dei metadati per un servizio WCF, è innanzitutto necessario aggiungere al servizio il comportamento del servizio ServiceMetadataBehavior. L'aggiunta di un'istanza System.ServiceModel.Description.ServiceMetadataBehavior consente al servizio di esporre gli endpoint dei metadati. Quando viene aggiunto il comportamento del servizio System.ServiceModel.Description.ServiceMetadataBehavior, è possibile esporre gli endpoint dei metadati che supportano il protocollo MEX o che rispondono alle richieste HTTP/GET.
System.ServiceModel.Description.ServiceMetadataBehavior utilizza un WsdlExporter per esportare metadati per tutti gli endpoint del servizio nel servizio. Per ulteriori informazioni su sull'esportazione di metadati da un servizio, vedere Esportazione e importazione di metadati.
System.ServiceModel.Description.ServiceMetadataBehavior aggiunge un'istanza ServiceMetadataExtension come estensione all'host del servizio. System.ServiceModel.Description.ServiceMetadataExtension fornisce l'implementazione per i metadati che pubblicano protocolli. È inoltre possibile utilizzare System.ServiceModel.Description.ServiceMetadataExtension per ottenere i metadati del servizio in fase di esecuzione accedendo alla proprietà System.ServiceModel.Description.ServiceMetadataExtension.Metadata.
Endpoint dei metadati MEX
Per aggiungere gli endpoint dei metadati che utilizzano il protocollo MEX, aggiungere gli endpoint del servizio all'host del servizio che utilizza il contratto di servizio IMetadataExchange. WCF include un'interfaccia IMetadataExchange con questo nome del contratto di servizio che è possibile utilizzare come parte del modello di programmazione WCF. Gli endpoint WS-MetadataExchange o MEX, possono utilizzare una delle quattro associazioni predefinite che i metodi factory statici espongono sulla classe MetadataExchangeBindings in modo che corrispondano alle associazioni predefinite utilizzate dagli strumenti WCF, ad esempio Svcutil.exe. È inoltre possibile configurare gli endpoint dei metadati MEX utilizzando un'associazione personalizzata.
Endpoint dei metadati HTTP GET
Per aggiungere un endpoint dei metadati al servizio che risponda alle richieste HTTP/GET, impostare la proprietà HttpGetEnabled in System.ServiceModel.Description.ServiceMetadataBehavior su true. È inoltre possibile configurare un endpoint dei metadati che utilizza HTTPS impostando la proprietà HttpsGetEnabled in System.ServiceModel.Description.ServiceMetadataBehavior su true.
Argomenti della sezione
- Procedura: pubblicare metadati per un servizio utilizzando un file di configurazione
Illustra come configurare un servizio WCF per pubblicare metadati in modo che i client possano recuperare i metadati utilizzando una richiesta WS-MetadataExchange o HTTP/GET tramite la stringa di query ?wsdl.
- Procedura: pubblicare metadati per un servizio utilizzando codice
Illustra come consentire la pubblicazione di metadati per un servizio nel codice WCF in modo che i client possano recuperare i metadati utilizzando una richiesta WS-MetadataExchange o HTTP/GET tramite la stringa di query ?wsdl.
Riferimenti
ServiceMetadataBehavior
IMetadataExchange
ServiceMetadataExtension
MetadataExchangeBindings