Hemos consumido un servicio web de terceros y estamos intentando invocarlo desde una aplicación web ASP.NET. Sin embargo, cuando una instancia del servicio web se lanza la siguiente excepción System.InvalidOperationException:El método 'XYZ' no se puede reflejar
Método 'ABC.XYZ' no puede ser reflejada. System.InvalidOperationException: El método 'ABC.XYZ' no se puede reflejar. ---> System.InvalidOperationException: El elemento XML 'MyDoc' del espacio de nombres 'http://mysoftware.com/ns' hace referencia a un método y un tipo. Cambie el nombre del mensaje del método utilizando WebMethodAttribute o cambie el elemento raíz del tipo mediante el atributo XmlRootAttribute .
Por lo que puedo deducir, parece haber cierta ambigüedad entre un método y un tipo en el servicio web. ¿Alguien puede aclarar la causa probable de esta excepción y hay algo que pueda hacer para rectificar esto o debería ir a los propietarios del servicio web para rectificar?
Editar: Visual Studio 2008 ha creado la clase de proxy. Lamentablemente, no puedo proporcionar un enlace al wsdl, ya que es un servicio web para una aplicación de terceros localmente instalada.
Marcó esto como respuesta, pero en realidad ¿olvidó mencionar cómo lo resolvió? – AaA
@BobSort Lo siento, hace mucho tiempo para recordar exactamente lo que hice, pero hubiera sido en la línea de actualizar manualmente las clases de proxy que VS ha creado para acceder al servicio para usar los tipos de datos que esperaba. –
En realidad, pude arreglarlo también, había una clase de propiedad generada con el mismo nombre que el método del servicio web. Cambié el nombre de la clase y se corrigió – AaA