lunes, 25 de junio de 2012

Usar un WCF con una clase compilada en nuestro proyecto web


Cuando usamos anteriormente un WCF en una aplicacion web se debio realizar una referencia directamente a la direccion URL del mismo, pero si esta direccion URL cambia por alguna razon, es decir, si esa URL es:

http://10.3.5.32/WCFClientes/Service1.svc

y cambia por la direccion:

http://10.3.5.22/WCFClientes/Service1.svc

debemos volver a realizar la referencia y compilar nuestra aplicacion web y colocarla  en nuestro web server, para resolver esto debemos crear un clase utilizando el WSDL que se encuentra en la siguiente :
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin

pero lo recomendable es que entre al directorio de su proyecto web donde utilizara la clase que vamos a crear y ejecute el siguiente comando para obtener la ruta del WSDL:

path C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin

luego para crear la clase ejecute el siguiente comando:

wsdl /language:CS /out:Service1.cs http://localhost/WCFClientes/Service1.svc?wsdl

/language:CS:Indica en que lenguaje deseamos generar la clase puede ser CS: C sharp o VB: Visual Basic

 /out:Service1.cs:Service1.cs es el nombre que deseamos darle puede ser el mismo nombre que se utiliza en el WCF o cualquier otro nombre.

 http://10.3.5.32/WCFClientes/Service1.svc?wsdl:Es la URL donde esta implementado el WCF y con el cual se generara la clase.


Al ejecutar el comando:

wsdl /language:CS /out:Service1.cs  http://10.3.5.32 /WCFClientes/Service1.svc?wsdl

en el directorio donde usted se encuentre  se creara el archivo Service1.cs el cual debera copiar dentro de su appWeb y agregarlo a la solucion.


Para utilizarlo puede colocar el siguiente codigo en un boton y agregar un label:


 Service1 x = new Service1();
            
            x.Url = "http://10.3.5.32/WCFClientes/Service1.svc";
//Es recomendable que tenga este URL  en el webconfig de su aplicacion para que lo pueda cambiar //facilmente si cambia el IP del servidor o en una tabla de una base de datos si se conecta a diferentes //servidores con el mismo webServices

            x.Timeout = 600000;//Es el tiempo de respuesta que debe esperar en el request
            Label1.Text = x.clientes().ToString();//Metodo que utilizara


No hay comentarios:

Publicar un comentario