Abilitare i metadati con WCF

di Stefano Mostarda, in .NET,

Nelle prime beta, ogni servizio esposto da WCF per default publicava i metadati così da permettere a qualunque client di creare un proxy. Questo comportamento è stato cambiato ed ora per default i servizi non danno queste informazioni. La cosa non rappresenta comunque un problema in quanto da configurazione si può risolvere il tutto in poche righe di app.config.

Basta agiungere al servizio un nuovo endpont che pubblichi i Metadati:

<endpoint address="" binding="mexTcpBinding" contract="IMetadataExchange"/>


Molta attenzione va data al binding. Questi, infatti, sono personalizzati per ogni protocollo supportato.Quindi abbiamo mexTcpBinding per il tcp, mexHttpBinding per l'HTTP e mexHttpsBinding per i canali HTTP protetti.
Una volta inserito l'endpoint si configura il behavior del servizio che specifica la pubblicazione dei metadati

<behaviors>
  <serviceBehaviors>
    <behavior name="Metadata">
      <serviceMetadata />
    </behavior>
  </serviceBehaviors>
</behaviors>


Per l'Http bisogna anche impostare l'attributo httpGetEnabled del nodo serviceMetadata per specificare che il WSDL è importabile con una semplice richiesta GET.

Per collegare il tuto si associa il behavior al servizio

<service name="MyService" behaviorConfiguration="Metadata">


Stay Tuned...

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese