Pregunta

Me acaba de entrar en la programación de WCF. He creado un servicio web alojado en sí mismo prueba en mi equipo de trabajo, que está detrás de un cortafuegos; es en http://localhost:8000/MyTestService. Puedo tener acceso a la página del servicio a través del navegador; todo funciona bien.

Ahora quiero tener acceso a ese servicio desde mi ordenador de casa, que está en una red diferente. Tengo un DNS dinámico (llamarlo mydomain.dyndns.org) creados a punto a mi router trabajo. Han probado, dyndns está apuntando a la dirección correcta.

Ahora he instalado una aplicación de prueba en mi ordenador para conectarse a mi servicio web. Por lo tanto, configurado mi NAT para transmitir las peticiones en el puerto 8000 a mi equipo de trabajo, en el mismo número de puerto.

En mi ordenador de casa que ahora se abre un navegador y vaya a http://mydomain.dyndns.org:8000/MyTestService. Nada que hacer.

Es evidente que me falta algo realmente fundamental acerca de NAT y el reenvío de puertos ... pero como digo, soy un poco nuevo en este aspecto de la programación, y realmente apreciaría una cierta dirección aquí!

¿Fue útil?

Solución

¿Usted ve un error o una página en blanco? Se puede comprobar canyouseeme.org desde el equipo detrás del firewall que el puerto está muy abierto? Se puede comprobar con herramientas como sysinternals tcpview que el intento de conexión llega a este equipo y no sólo el router?

Otros consejos

Yo tenía el mismo problema.

después de una buena ayuda de este toppic. http://www.codeproject.com/Questions/140317/WCF -servicios-y-Windows-Firewall. Mi WCF servicio funcionó bien en la LAN local, incluso con el firewall activo.

Pero no era accesible en internet. Después de reenvío de puertos que pude ver la descripción del servicio. pero no pude utilizarlo.

Este artículo http: / /gavinmckay.wordpress.com/2009/03/24/howto-fix-wcf-host-name-on-iis/ me apunta en la dirección correcta. El servicio es visible, pero las conexiones a su servidor web fallará debido a que el WSDL está apuntando al nombre no publicado del servidor y el cliente no será capaz de llegar allí.

En mi caso, una necesidad que cambiar el auto alojado WCF el extremo local a la pública.

        1 Create a URI to serve as the base address.
        Uri baseAddress = new Uri("http://publicdomain.com:8000/GettingStarted/");
        // Step 2 Create a ServiceHost instance
        ServiceHost selfHostRemote = new ServiceHost(typeof(MyService), baseAddress);

Buena suerte

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top