He estado luchando con SvcUtil todo el día, tratando de que genere código útil para algunos Servicios Empresariales IMS (principalmente Servicio de Administración de Grupos, pero hay otros para los que también necesitamos que funcione). Puede encontrar el servicio IMS WSDL está aquí http://www.imsglobal.org/es/index.html.¿Alternativa a SvcUtil.exe?
He llegado a la conclusión de que SvcUtil es una idea secundaria inútil de Microsoft que no es compatible con los estándares WSDL y XSD, incluso de una manera a medias. Es incapaz de generar un servicio WCF que cumpla con los contratos WSDL estándar que IMS usa y funciones al mismo tiempo. A pesar de generar código compilable del siguiente WSDL (http://www.imsglobal.org/services/gms/wsdl/imsGroupManServiceSync_v1p0.wsdl), observar el WSDL generado desde el servicio WCF (? Wsdl,? Wsdl = wsdl0,? Xsd = xsd0, etc.) muestra que ninguna de las operaciones existe, y solo una fracción de los tipos que se generaron en el código son realmente reconocidos por WCF. Si trabajamos con el código generado, podemos obtener algo de ese tipo de funciones (estamos usando SoapUI para probar), pero luego ya no se ajusta al contrato, por lo que es inútil para las personas que realmente necesitan llamar a estos servicios.
¿Hay alguna alternativa a SvcUtil? (No sugiera la herramienta integrada "Visualizar referencia de servicio" de Visual Studio, que es tan inútil ya que utiliza el mismo código que SvcUtil.) Necesitamos algo que nos dé un grado de control sobre cómo el código se genera a partir del contrato WSDL, en qué archivos termina cada parte, en qué espacios de nombres termina cada elemento de código, etc. El contrato IMS importa tanto los tipos XSD específicos de los servicios definidos en el WSDL, como los tipos XSD que son comunes a todos los servicios IMS. Necesitamos poder generar diferentes ensamblajes para esos tipos, y hacer referencia a ellos en el código generado (similar a como aparentemente se supone que SvcUtil debe hacerlo ... pero no parece hacer lo que dice su documentación dice que sí en absoluto.)
He sido un gran admirador de WCF hasta ahora. Obviamente, funciona cuando utiliza solo servicios .NET/WCF, pero cada vez que intenta usarlo en un entorno multiplataforma compatible con los estándares, todo se vuelve una mierda.
"cada vez que intenta usarlo en un entorno multiplataforma compatible con los estándares, todo se vuelve una mierda" ... esto realmente no debería ser una sorpresa ... – skaffman
@skaffman: Excepto que se suponía que era el objetivo principal de los nuevos y mejorados estándares WSDL, SOAP, XSD y WS- * de WCF. – jrista
¿Para construir un comportamiento de servicio para "adaptar" su generación de WSDL es una opción? Puede ver un ejemplo aquí: http://www.codeproject.com/KB/WCF/ExportAnnotationFromWCF.aspx –