2010-03-15 10 views
6

WCF Opción Binario sobre TCP, ¿es aplicable solo para Intranet o Internet también?WCF con Binario sobre TCP

¿Se aplica TCP solo para Intranet?

+0

¿Qué es lo que quiere * lograr * al cambiar a TCP? Puede haber otras opciones (quizás incluso mejores) que no impliquen abrir agujeros. –

+0

@Marc - Solo intento comprender y explorar las opciones disponibles. Sé y he estado usando HTTP. Tratando de conocer otras opciones (TCP por ahora) y sus pros y contras. – user274915

Respuesta

2

La respuesta es: depende. Hasta donde yo sé, la codificación binaria de WCF requiere que ambos extremos sean puntos finales WCF (lo que actualmente limitaría a Windows a menos que/hasta que Mono admita la codificación binaria). El otro problema sería si puede o no llegar al puerto en el que está escuchando el servidor remoto. Una de las razones por las que ejecutar servicios a través de HTTP se ha vuelto tan popular es que el puerto 80 es mucho más parecido a ser abierto.

+0

+1 exactamente - en teoría, debería funcionar bien - pero es TCP - no HTTP - así que espera problemas de firewall, y tu otro extremo también debe hablar el mismo enlace tcp/ip con codificación binaria, por lo que solo es útil si controlas ambos extremos de la comunicación, realmente. –

+0

Gracias. Entonces, según usted, si abro el puerto 434 (o lo que sea para TCP), ¿podría acceder a él a través de Internet? ¿O necesito configurar el túnel VPN con el cliente? – user274915

+0

@ jobless-spt: las cosas que necesitará hacer para acceder al puerto remoto variarán enormemente dependiendo de la configuración de seguridad de la red. Deberá hablar con su equipo local de TI/Sec para solucionarlo. Tenga en cuenta, sin embargo, que las personas de seguridad probablemente sean muy reacias a exponer un puerto adicional a redes externas; y si no lo son, es posible que necesite nuevas personas de seguridad. –

3

El serializador y el transporte no están relacionados en gran medida. Existen enlaces preconfigurados para escenarios comunes, pero entiendo que puede conectar el serializador binario (NetDataContractSerializer) en cualquier transporte. O escriba el suyo ;-p

Sin embargo, un transporte diferente puede ser más complicado de configurar (firewalls, etc.) que el HTTP simple.

See here (aunque me gustaría disputar el reclamo velocidad; he visto NetDataContractSerializer goleó en ocasiones ...)


Re comentario - no es tanto el transporte (Te sospechoso es mejor quedarse con http), pero considere this y this. Un serializador binario alternativo, excelente para enviar algunos tipos de mensajes. Y juega muy bien con MTOM (a través de http) también.

+0

Gracias Marc. ¿Hay alguna referencia que pueda proporcionar sobre restricciones en el protocolo que no sea HTTP? Necesito entender si podemos usar otros protocolos a través de Internet o no. Si es posible, ¿qué se necesita para hacer eso (abrir el puerto, etc.)? – user274915

+0

@ jobless-spt: agregó algunos enlaces –

+0

+1, Binario a través de HTTP es un buen compromiso. Se reserva la capacidad de alojar el servicio en IIS (no puedo decirte la última vez que me molesté en escribir mi propio host WCF) y es amigable con el firewall. La sobrecarga de HTTP es probablemente muy baja si no está transmitiendo fragmentos o chateando con frecuencia. – Josh

Cuestiones relacionadas