Pubblicazione di metadati

I servizi Windows Communication Foundation (WCF) pubblicano i metadati pubblicando uno o più endpoint di 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 oggetto WsdlExporter per esportare i metadati per tutti gli endpoint nel servizio. Per altre informazioni 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 usare System.ServiceModel.Description.ServiceMetadataExtension per ottenere i metadati del servizio in fase di esecuzione accedendo alla proprietà ServiceMetadataExtension.Metadata.

Endpoint dei metadati MEX

Per aggiungere endpoint dei metadati che utilizzano il protocollo MEX, aggiungere gli endpoint del servizio all'host del servizio che utilizza il contratto di servizio IMetadataExchange. In WCF è inclusa un'interfaccia IMetadataExchange con il nome di questo contratto di servizio che è possibile usare come parte del modello di programmazione di WCF. Gli endpoint WS-MetadataExchange o MEX, possono usare uno dei quattro binding predefiniti che i metodi factory statici espongono sulla classe MetadataExchangeBindings in modo che corrispondano ai binding predefiniti usati 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.

In questa sezione

Procedura: Pubblicare metadati per un servizio usando un file di configurazione
Viene illustrato come configurare un servizio WCF per pubblicare i metadati in modo che i client possano recuperare i metadati usando WS-MetadataExchange o una richiesta HTTP/GET tramite la stringa di query ?wsdl.

Procedura: Pubblicare metadati per un servizio usando il codice
Viene illustrato come abilitare la pubblicazione dei metadati per un servizio WCF nel codice in modo che i client possano recuperare i metadati usando WS-MetadataExchange o una richiesta HTTP/GET tramite la stringa di query ?wsdl.

Riferimento

ServiceMetadataBehavior

IMetadataExchange

ServiceMetadataExtension

MetadataExchangeBindings

Vedi anche