Tengo un servicio WCF simple que ha funcionado bien mientras he estado probando en mi máquina de desarrollo.WCF Web Service error: "¿El enlace del punto final del servicio no utiliza el protocolo HTTP?"
Ahora he movido el servicio web a un servidor web, y estoy ejecutando el servicio (en modo de depuración) en http://mydomain.com:8005. Abrir un navegador web a esa URL muestra la página de servicio esperada, y si pongo un punto de interrupción en el servidor dentro de la interfaz que estoy llamando, llega al punto de interrupción y devuelve los datos esperados ... pero en el lado del cliente vuelve con el siguiente error:
An error occurred while receiving the HTTP response to http://mydomain.com:8005/ . This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down). See server logs for more details.
más pistas: la firma de interfaz es:
IEnumerable<MyClass> GetThings(out string errMsg);
donde MyClass
se define como Serializable, y las definiciones son idénticas entre el cliente y el servidor.
¿Alguna idea de qué cambios secretos necesito para voltear?
¿Cómo hospedas tu servicio WCF? En IIS? ¿IIS se ejecuta en el puerto 8005 en esa máquina? También: por favor ** muéstranos ** tu configuración del lado del servicio - no podemos leer tu mente (o tu disco duro) desde aquí ... –
WCF también necesita tener ** clases concretas ** para pasar datos (ya que todo necesita ser XML-serializable y debe ser capaz de expresarse en esquema XML; las interfaces no son adecuadas).Creo que no podrá volver a pasar un 'IEnumerable' - intente utilizar una 'Lista ' o un tipo concreto en su lugar. ¿Alguna suerte? –
@marc_s - autohospedado, marcado como '[Serializable]' y '[DataContract]'; todos los miembros públicos marcados como '[DataMember]'. –