Ésta parece ser útil en la siguiente situación ...
<system.serviceModel>
<services>
<service name="WCFService.Service" behaviorConfiguration="ServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:8080/WCFService"/>
</baseAddresses>
</host>
<!-- Net.Tcp EndPoints-->
<endpoint address=""
binding="netTcpBinding"
contract="WCFService.IService" />
<endpoint address="mex"
binding="mexTcpBinding"
contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="false" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
No hay extremos HTTP definidos y se puede obtener a su servicio en las siguientes maneras. ..
- Browser: http://localhost/WCFService/Service.svc
- svcutil.exe net.tcp://localhost:8080/WCFService/Service.svc/mex
Si comenta el punto final MEX, ninguno de los dos funcionará.
Se pregunta por qué los metadatos aún se pueden ver en el navegador como
a) no tengo un punto final HTTP y b) he puesto en concreto ...
<serviceMetadata httpGetEnabled="false" />
la razón de esto es que en la configuración avanzada de la página web que tenía los siguientes protocolos se definen para la habilitada en configuración avanzada ...
http,net.tcp
Si elimina http
, los metadatos no se pueden ver en el navegador. Parecería que es en este escenario, un sitio web habilitado para net.tcp, que necesita el punto final mex.
Buena pregunta.+1 – Lijo