tutorial example ejemplos wcf

example - wcf vs web api



WCF NetTcpBinding con mex (3)

Debe publicar los metadatos del servicio a través de http para wsdl. Agregue la siguiente etiqueta a la etiqueta <system.serviceModel> de su archivo de configuración

<behaviors> <serviceBehaviors> <behavior name = "MetadataBehavior"> <serviceMetadata httpGetEnabled = "true"/> </behavior> </serviceBehaviors> </behaviors>

También deberá especificar una dirección http desde donde estarán disponibles los metadatos del servicio en wsdl. Agregue esto al nodo <servicio> de su archivo de configuración:

<host> <baseAddresses> <add baseAddress="net.tcp://localhost:8001" /> <add baseAddress="http://localhost:8000/Service1" /> </baseAddresses> </host>

Luego, si va a http://localhost:8000/Service1?wsdl , debería ver el wsdl para su servicio.

Estoy intentando publicar un servicio wcf usando nettcpbinding. Quiero publicar metadatos, usando? Wsdl. Agregué la siguiente línea al archivo de configuración:

<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>

pero no puedo ver el wsdl en mi navegador. ¿qué hice mal? Gracias.

Edición: Aquí está la parte relevante de mi archivo de configuración:

<system.serviceModel> <services> <service name="wcfcheck.service1" behaviorConfiguration="wcfcheck.Service1Behavior"> <endpoint address="" binding="netTcpBinding" contract="wcfcheck.Iservice1"/> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> </service> </services> <behaviors> <serviceBehaviors> <behavior name="wcfcheck.Service1Behavior"> <serviceMetadata httpGetEnabled="true" httpGetUrl=""/> <serviceDebug includeExceptionDetailInFaults="true"/> </behavior> </serviceBehaviors>

Puede que no esté accediendo a la URL correcta. http://localhost:51159/Service1.svc?wsdl tanto http://localhost:51159/Service1.svc?wsdl como http://localhost:51159/Service1.svc/mex?wsdl , y sin el ''? Wsdl''.


Puede probar el enlace mexTcp y asegurarse de que su dirección base comience con net.tcp: // .....


<serviceMetadata> utilizar el elemento <serviceMetadata> .

<behaviors> <serviceBehaviors> <behavior name="metadataSupport"> <!-- Enables the IMetadataExchange endpoint in services that --> <!-- use "metadataSupport" in their behaviorConfiguration attribute. --> <!-- In addition, the httpGetEnabled and httpGetUrl attributes publish --> <!-- Service metadata for retrieval by HTTP/GET at the address --> <!-- "http://localhost:8080/SampleService?wsdl" --> <serviceMetadata httpGetEnabled="true" httpGetUrl=""/> </behavior> </serviceBehaviors> </behaviors>