WSDL y Web services .NET
En la empresa donde laboro, me dieron un archivo WSDL con las funciones de un web service, con lo cual tengo que generar una clase en C# o VB.net.
Todo comienza al momento de intentar generar el WSDL en una clase con la herramienta "WSDL.exe" desde la consola del Visual Studio 2005, 2008 o 2010 ya que, al intentarlo de diversas formas, se genera un error o una clase vacía.
Según lo que me dicen, puede existir un problema con los "namespaces" del XML pero como no soy experto en web services y menos enXML no tengo idea de como solucionar esto.
Ahora, les daré una explicación de lo que he estado haciendo hasta el momento.
Por ejemplo, si genero una clase en C#o VB.net de un wsdl como normalmente se debería hacer usando el comando que figura en la imagen, obtengo el siguiente error:
Comando1-Error1:
http://dl.dropbox.com/u/15208254/wsdl/error01-wsdl.jpg
Buscando un poco de información al respecto, leí que si especificaba el protocolo "soap12" del wsdl en el comando, se podría generar sin problemas y, al intentarlo, obtuve los siguientes errores (Ver imagen "Comando2-Error2") y, aunque se genero una clase, esta se encuentra vacía ("Ver imagen "Comando2-Clase-Vacía")
Comando2-Error2:
http://dl.dropbox.com/u/15208254/wsdl/error02-wsdl.jpg
Comando2-Clase-Vacia:
http://dl.dropbox.com/u/15208254/wsdl/error02-wsdl-clase-vacia.jpg
Por ultimo, decidí buscar otras alternativas y encontré otra herramienta, esta se llama "WSFC.exe" y permite hacer lo mismo que la herramienta que viene por defecto con el Visual Studio (WSDL.exe). Según la web del creador, esta herramienta es más beneficiosa que la del Visual Studio y la describe así:
"WSCF offers a simple yet powerful WSDL Wizard that abstracts away all the nitty-gritty details of WSDL and therefore does not give room for making errors and wrong assumptions just by trying to use and applying everything that can be done stated by the original WSDL specification."
Puede informarse más de esto en los siguientes links:
http://www.thinktecture.com/resourcearchive/tools-and-software/wscf
http://weblogs.thinktecture.com/cweyer/2007/12/running-wscf-07-in-visual-studio-2008.html
http://www.thearchitect.co.uk/weblog/archives/2007/05/installer_error_code_2869_on_windows_vista_and_how_to_correc.html
Sin embargo, no obtuve buenos resultados al usar la nueva herramienta, y esta vez utilice un comando parecido a los que usaba en las imágenes anteriores solo que en vez de usar WSDL, usaba WSFC.
"WSFC miwsdl.wsdl /l:cs"
Y siempre generaba una clase (también vacía) pero con una descripción un poco más detallada del posible error que existe hasta ahora cuando intento generar la clase del WSDL que poseo.
La descripción del error que aparecía en la imagen vacía era este:
http://dl.dropbox.com/u/15208254/wsdl/error03-wscf-clase-vacia.jpg
Espero me puedan ayudar ya que no encuentro la manera de generar dicha clase en C#. Por otro lado, cabe resaltar nuevamente que no soy un experto en web services y tampoco en XML, por lo que si están interesados en ayudarme, les pongo a disposición el WSDL a continuación y les dejo mi e-mail: [email protected] para que se contacten conmigo.
Link - WSDL:
http://dl.dropbox.com/u/15208254/wsdl/WSDL.zip
Todo comienza al momento de intentar generar el WSDL en una clase con la herramienta "WSDL.exe" desde la consola del Visual Studio 2005, 2008 o 2010 ya que, al intentarlo de diversas formas, se genera un error o una clase vacía.
Según lo que me dicen, puede existir un problema con los "namespaces" del XML pero como no soy experto en web services y menos enXML no tengo idea de como solucionar esto.
Ahora, les daré una explicación de lo que he estado haciendo hasta el momento.
Por ejemplo, si genero una clase en C#o VB.net de un wsdl como normalmente se debería hacer usando el comando que figura en la imagen, obtengo el siguiente error:
Comando1-Error1:
http://dl.dropbox.com/u/15208254/wsdl/error01-wsdl.jpg
Buscando un poco de información al respecto, leí que si especificaba el protocolo "soap12" del wsdl en el comando, se podría generar sin problemas y, al intentarlo, obtuve los siguientes errores (Ver imagen "Comando2-Error2") y, aunque se genero una clase, esta se encuentra vacía ("Ver imagen "Comando2-Clase-Vacía")
Comando2-Error2:
http://dl.dropbox.com/u/15208254/wsdl/error02-wsdl.jpg
Comando2-Clase-Vacia:
http://dl.dropbox.com/u/15208254/wsdl/error02-wsdl-clase-vacia.jpg
Por ultimo, decidí buscar otras alternativas y encontré otra herramienta, esta se llama "WSFC.exe" y permite hacer lo mismo que la herramienta que viene por defecto con el Visual Studio (WSDL.exe). Según la web del creador, esta herramienta es más beneficiosa que la del Visual Studio y la describe así:
"WSCF offers a simple yet powerful WSDL Wizard that abstracts away all the nitty-gritty details of WSDL and therefore does not give room for making errors and wrong assumptions just by trying to use and applying everything that can be done stated by the original WSDL specification."
Puede informarse más de esto en los siguientes links:
http://www.thinktecture.com/resourcearchive/tools-and-software/wscf
http://weblogs.thinktecture.com/cweyer/2007/12/running-wscf-07-in-visual-studio-2008.html
http://www.thearchitect.co.uk/weblog/archives/2007/05/installer_error_code_2869_on_windows_vista_and_how_to_correc.html
Sin embargo, no obtuve buenos resultados al usar la nueva herramienta, y esta vez utilice un comando parecido a los que usaba en las imágenes anteriores solo que en vez de usar WSDL, usaba WSFC.
"WSFC miwsdl.wsdl /l:cs"
Y siempre generaba una clase (también vacía) pero con una descripción un poco más detallada del posible error que existe hasta ahora cuando intento generar la clase del WSDL que poseo.
La descripción del error que aparecía en la imagen vacía era este:
http://dl.dropbox.com/u/15208254/wsdl/error03-wscf-clase-vacia.jpg
Espero me puedan ayudar ya que no encuentro la manera de generar dicha clase en C#. Por otro lado, cabe resaltar nuevamente que no soy un experto en web services y tampoco en XML, por lo que si están interesados en ayudarme, les pongo a disposición el WSDL a continuación y les dejo mi e-mail: [email protected] para que se contacten conmigo.
Link - WSDL:
http://dl.dropbox.com/u/15208254/wsdl/WSDL.zip
Respuesta de Roberto Alvarado
1