2011-08-31 11 views
13

Nuestra aplicación se aloja en IIS 7.0. Expone los puntos finales sobre el protocolo net.tcp. Pero seguimos corriendo a la siguiente excepción:el servicio net.tcp no está disponible para el protocolo de la dirección

EndpointNotFoundException: El mensaje no pudo ser enviado porque el servicio en la dirección de punto final 'net.tcp: //localhost/xxx/service.svc' no está disponible para el protocolo de la dirección.

Hemos comprobado los siguientes lugares por posibles causas.

  • Windows Process Activation Service está funcionando bien
  • servicio adaptador del Receptor de net.tcp está bien.
  • El servicio Net.Tcp Port Sharing está bien.
  • Fabricamos net.tcp vinculante para la aplicación web.
  • El protocolo net.tcp está habilitado para la aplicación web como se muestra a continuación. net.tcp protocol is enabled

he tratado de restablecer los IIS después de comprobar todos los lugares anteriores. Sigue sin funcionar.

Esto me está matando. Espero que alguien pueda darme algunas pistas.

He buscado mucho. Parece que este es un problema muy común que no se ha resuelto perfectamente. Creo que es hora de terminar con este dolor en el culo.

¡Muchas gracias!

Respuesta

4

Es difícil de decir, pero ¿en qué puerto está intentando conectarse?

Asegúrate de que el puerto esté disponible y que nada más lo esté usando.

Si está usando un proxy se debe añadir el siguiente, así:

...... 
<httpTransport 
     maxBufferPoolSize="4194304" 
     maxBufferSize="1048576" 
     maxReceivedMessageSize="1048576" 
     proxyAddress="http://127.0.0.1.:8888 
     useDefaultWebProxy="false" 
    /> 
    </binding> 
</customBinding> 
+0

Basado en el mensaje de excepción, parece que el protocolo net.tcp no está funcionando. Pero gracias, verificaré el número de puerto en mi firewall. – smwikipedia

+2

He vuelto a leer su respuesta. Y sí, hay un enlace de otro sitio web que usa el mismo puerto net.tcp. Pero, por extraño que parezca, el sitio está ** detenido **, y también el app_pool está ** detenido **. Esto es muy diferente de la experiencia HTTP, donde puedo compartir 80 puertos entre múltiples sitios web, siempre y cuando solo uno esté en línea. Después de eliminar el otro enlace net.tcp o lo cambié a un puerto diferente. Y luego ** restablecer el IIS **. El servicio problemático está bien. Y tenga en cuenta que IIS debe reiniciarse. – smwikipedia

+0

Tengo curiosidad sobre por qué los protocolos HTTP y net.tcp se comportan de manera diferente. ¿Es porque el protocolo HTTP está controlado por IIS, mientras que net.tcp no lo está (no estoy seguro de quién lo controla, tal vez el Servicio de activación de procesos de Windows). Y los 2 protocolos se controlan de manera diferente. – smwikipedia

Cuestiones relacionadas