2011-05-26 22 views
5

Puedo conectarme a un servicio WCF remoto desde una consola o una aplicación web/webapplication ejecutándose satisfactoriamente en un servidor dev VS. Sin embargo, cuando intento conectarme desde un sitio web alojado en IIS, recibo el siguiente error. ¿Alguna idea?No se puede conectar a un servicio wcf remoto desde IIS

No connection could be made because the target machine actively refused it 12.11.121.12:80

Respuesta

4

Este error:

No connection could be made because the target machine actively refused it

significa que una solicitud de conexión tiene éxito a través de la máquina de destino (que no es un problema de cortafuegos), en un puerto dado y el equipo de destino no estaba escuchando para las conexiones entrantes en ese puerto, por lo que el sistema operativo rechazó el intento de conexión.

El resto de su error identifica la máquina 12.11.121.12 y el número de puerto 80 que se intentó la conexión.

El error indica que un servidor no se está ejecutando en la máquina de destino. Si sabe un servidor se está ejecutando en el equipo al que está intentando conectarse, porque puede conectarse a él desde otra aplicación, esto sugiere que los detalles de su conexión están mal configurados en el sitio web.

Así, algunas cosas a comprobar:

  • ¿Hay diferencias entre los app.config web.config detalles/configuración para el servicio web de destino? Específicamente, el nombre de la máquina (12.11.121.12) y el número de puerto (80) parecerían potenciales.
  • ¿Está ejecutando el sitio web alojado en IIS en la misma máquina que la consola/aplicación web que funciona? Si no es así, hacer las dos máquinas de resolver el nombre del servidor de destino (está usando someserver.org, por ejemplo, en lugar de 12.11.121.12 y se resuelve a una dirección IP diferente, porque un servidor no está recubrimiento exterior y la otra es interna?
+0

Gracias por su respuesta. Empecé a buscar en la configuración, especialmente después de la respuesta de tu. Nuestras computadoras están configuradas a través de un proxy, así que pensé que podría ser un problema. Cambié algunos parámetros en el elemento de enlace como bypassProxyOnLocal = "false" useDefaultWebProxy = "false" proxyAddress = "http: // proxyaddress: portno" en la web .config y at-once cosas comenzaron a funcionar. Me pregunto por qué ningún cuerpo pensó en eso. – VJAI

+0

@Vijaya Anand: Me alegra que lo hayas hecho funcionar.Los de Proxy son definitivamente una de las maneras más fáciles de terminar hablando con una máquina diferente a la que creías que eras :) – forsvarir

+1

@Mark: algunas cosas sobre la etiqueta del sitio, ya que tu problema parece estar resuelto. Si considera que mi respuesta es útil para resolver su problema, por lo general, es educado votarlo. Si no va a aceptarlo ni a otorgarle la recompensa (lo cual es razonable ya que no mencioné su problema exacto), entonces debería considerar publicar una respuesta propia y aceptar que en su lugar indique que el problema ha sido resuelto y cómo. Si, por otro lado, espera ayuda adicional, puede publicar una actualización de su pregunta para indicar los problemas que todavía tiene. – forsvarir

0

esto suena muy parecido a los permisos (problema de autenticación) ya que el grupo de aplicaciones se ejecuta bajo un usuario diferente (máquina) de manera predeterminada. Como WCF usa el token de autenticación, apostaría que este es su problema. Intente establecer la identidad de la agrupación en el mismo usuario como la consola, y apuesto a que funcionará bien.

+0

Este error "máquina de destino rechazó activamente esto" sucede si la máquina de destino no está escuchando en el puerto en el que se está realizando el intento de conexión (en este caso debido a la configuración del proxy, vea el comentario de operaciones bajo mi respuesta). Si se tratara de un problema de permisos, es más probable que el error sea algo así como "permiso denegado" o "error de autenticación", pero este nivel de validación no se produce hasta * después de * que se haya establecido la conexión. – forsvarir

+0

Buen punto, gracias por la claridad – hivie7510

0

Extraño Recibí este error cuando useDefaultWebProxy era "verdadero" desde una aplicación web, pero exactamente el mismo código y la configuración funcionó bien en una unidad de prueba c muchacha.

Resulta que la aplicación web estaba utilizando el proxy del navegador web (política corporativa) de https://foo/bar:1234. Cuando me puse esta manera explícita usando:

<system.serviceModel> 
    <bindings> 
    <wsHttpBinding> 
     <binding name=... 
      useDefaultWebProxy="false" proxyAddress="https://foo/bar:1234" 
     ... 

Tengo el error:

The ServicePointManager does not support proxies with the https scheme

Así que cambió la dirección del proxy http, https no, y funcionó.

Cuestiones relacionadas