2009-11-09 68 views
10

Tengo dos clientes WCF que consumen un servicio web de terceros.No había un punto extremo que escuchara que pudiera aceptar el mensaje. Esto a menudo es causado por una dirección incorrecta o acción SOAP

Estos dos clientes ejecutan la misma llamada al método. En el primer caso, funciona siempre, en el otro aparece el mensaje "No había ningún punto final escuchando ...".

Por lo que puedo decir, la única diferencia entre las dos llamadas es que están en dos clientes diferentes, y eso significa que los archivos .exe.config no son los mismos. Usan el mismo código fuente, que se comparte entre los dos proyectos en Visual Studio, por lo que no es diferente.

Pero, de hecho, el contenido de esos dos archivos exe.config es (casi) exactamente el mismo; la única diferencia es que exe.config para la llamada que falla tiene valores más grandes para los atributos maxBufferSize y maxReceivedMessageSize del elemento de enlace, así como un valor sendTimeout más grande.

Respuesta

6

Esto no es realmente una respuesta, es una explicación.

El problema es que de los dos clientes mencionados anteriormente, uno era una aplicación de escritorio de Windows Forms, y el otro un servicio de Windows. Ambos usaron la misma base de código (es decir, instancia de una clase) y casi los mismos archivos app.config.

PERO el servicio inició sesión en la cuenta del sistema, y ​​en algunos sitios esto no parece tener los derechos/perfil para acceder a Internet, por lo que no pudo encontrar el punto final del servicio web. Obvio. Cuando tu sabes.

+0

¿Cómo solucionó esto? – BlueChippy

+0

No puedo recordar cómo solucioné este caso real, pero hay al menos dos soluciones: obtener la cuenta del sistema para poder acceder a Internet u obtener el servicio para iniciar sesión de forma tal que se pueda acceder al Internet. – Peter

Cuestiones relacionadas