2010-06-16 14 views
5

Estoy interesado en un servidor WCF que expone las interfaces HTTP y TCP. Se usará con clientes de Silverlight, por lo que se piensa que la interfaz HTTP será para comunicaciones seguras, mientras que TCP se usará el resto del tiempo.¿Pueden los extremos TCP y HTTP WCF tener el mismo puerto?

Es posible que estas dos interfaces utilicen el mismo puerto en sus puntos finales, p. http://localhost:9000/ y net.tcp: // localhost: 9000 /?

+0

Estaría muy sorprendido, particularmente si realmente quiere decir HTTPS por seguridad. ¿Cómo está alojando el punto final HTTP - IIS o algo más? (¿WCF tiene un host HTTP incorporado?) Si es IIS, casi con seguridad no. ¿Por qué quieres hacer esto de todos modos? – Rup

Respuesta

4

No, esto no es posible. Si tiene activado el servicio de intercambio de puerto TCP, puede tener varios servicios escuchando en el mismo puerto TCP. El oyente HTTP de Windows también le permitirá tener múltiples servicios que comparten un puerto común (por ejemplo, una aplicación de consola e IIS pueden escuchar en el puerto 80 en diferentes URL). Pero no puedes usar enlaces múltiples en el mismo puerto.

Pero realmente no veo la ventaja de hacer eso de todos modos. Yo personalmente dejaría el punto final HTTP en el puerto 80 y, por supuesto, su punto final TCP está restringido a un rango de puerto superior. Sin embargo, no estoy seguro de qué escenario está intentando habilitar.

-1

Solo puede tener un "oyente" en un puerto TCP, a menos que el servidor WCF realice algún tipo de multiplexación a nivel de protocolo (es decir, si lo lee en un encabezado HTTP, envíelo al controlador HTTP o envíelo a el manejador "en bruto"), tendrá que usar diferentes puertos.

Por supuesto, la manera más rápida de averiguarlo es configurar su servidor con estas dos interfaces y el mismo puerto, y verificar los registros en busca de errores. Lo más probable es que cada uno intente vincularse al puerto 9000 desde su propio hilo o proceso, y el segundo fallará.

Cuestiones relacionadas