Tengo una aplicación servidor/cliente desarrollada en Delphi 2006. El cliente es Win32 y el servidor es un servicio web .net 1.1.El servicio WCF expuesto como ASMX no aceptará los parámetros
Estamos en el proceso de actualización de este proyecto, pero tiene que hacerse en pequeños pasos. Empecé con el servidor y creé un proyecto WCF en VS2010 (C# .net 4.0). El primer paso es hacer que el servidor se ejecute en WCF sin cambiar el cliente. Así que utilicé el patrón de fachada, creé una interfaz similar al antiguo delphi Webservice, agregué una referencia al viejo .ll 1.1 dll y en mi implementación acabo de llamar al viejo código .net 1.1.
Siguiente paso actualizando la clase proxy en el cliente. Esto falló El importador de WSDL no entendía correctamente el basicHttpBinding, por lo que la clase de proxy que se generó no pudo reemplazar el proxy existente.
Después de investigar un poco encontré esta publicación en el blog.
http://kjellsj.blogspot.com/2006/12/how-to-expose-wcf-service-also-as-asmx.html
Esto funcionó, la ASMX WSDL no era diferente de la antigua .net así que todo bien appered 1.1.
Pero no fue así. Al probar el nuevo servicio, descubrí que todos mis parámetros estaban en blanco/nulo en el servidor. Intenté con Fiddler en el cliente y los parámetros están presentes en el XML que se envía al servidor.
Así que estoy atascado. Cualquier idea sobre cómo resolver esto sería muy apreciada. ¿Hay algún código que pueda ser interesante para ver y luego dejarme saber.
Así que el WSDL es el mismo, pero el servidor es ahora .Net 4.0 en lugar de 1.1? Si el cliente Delphi usa el mismo WSDL que antes, pero el servidor ya no ve los parámetros, escribiría un cliente en .Net y vería si esto funciona. Si lo hace, compare las solicitudes de Soap de .Net y Delphi del cliente. – mjn
Compara el XML. "Parámetros nulos" generalmente significa que hay una diferencia de espacio de nombres entre lo que se envía y lo que se espera. –