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...
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Nella stessa categoria
- Entity Framework è lento! mmmmh, probabilmente sei tu che lo stai usando male!, il 7 ottobre 2022 alle 10:55
- Cosa penso di ASP.NET vNext, il 3 settembre 2014 alle 09:00
- E così AngularJS e DurandalJS convergono..., il 7 maggio 2014 alle 11:51
- Usare fiddler per simulare le risposte da un servizio, il 28 ottobre 2013 alle 08:00
- Tip: cosa fare quando Entity Framework Code-First Migrations smette di funzionare, il 18 gennaio 2013 alle 11:04
- Visual Studio 11 beta: le novità di Entity Framework 5.0 e WCF 4.5, il 2 marzo 2012 alle 23:08
I più letti del mese