Tutorial WCF Tercera Parte: Alojando (Hosting) nuestro Servicio WCF (Windows Communication Foundation)

Bienvenidos a esta tercera parte del Tutorial de WCF. Como recordarán en la segunda parte de este tutorial, habíamos visto como crear un servicio WCF, ahora que nuestro servicio esta creado y como el mismo es una librería de clases (class library) debemos alojarlo en algún ambiente para que pueda ser consumido por una aplicación cliente.

 Creando el alojamiento (hosting) para nuestra aplicación en IIS Express

Hay muchas maneras de crear aplicaciones host para nuestros servicios WCF en Visual Studio, pero en esta ocasión crearemos una aplicación host manualmente para entender como realmente funciona y cuales son todos los pasos necesarios en este proceso. Para poder alojar nuestra librería de clases en IIS Express  debemos crear un sitio web. Veamos cuales son estos pasos de creación:

  1. En el  Solution Explorer debemos hacer click derecho sobre el nombre de la solución MiPrimerServicioWCF y seleccionar ADD -> New Web Site… desde el menu contextual. El formulario de Add New Web Site se abrirá.
  2. Seleccionar Visual C# -> ASP.NET Empty Web Site como template y dejar la opción Web Location con el valor File System, pero debemos cambiar el folder a C:\ProyectoWCF\Proyectos\MiPrimerServicioWCF\HostServer  y hacer click en OK.

WCFTUT_15

3. Ahora en el Solution Explorer veremos un nuevo item  dentro de la solución. El solution explorer mostrará lo siguiente.

WCFTUT_16

4. El siguiente paso es poner nuestro sitio web como proyecto de arranque. Debemos en el Solution Explorer hacer click derecho sobre el sitio web HostServer y seleccionar Set as StartUp Project desde el menu contextual. Ahora luego de esta configuración en el Solution explorer el sitio web HostServer debería estar destacado en negrita.

5. Como alojaremos PrimerServicioWCF en este sitio web, debemos agregar una referencia de PrimerServicioWCF al sitio web. Para esto, debemos hacer click derecho sobre el sitio web HostServer y seleccionar Add -> Reference… desde el menu contextual. El formulario de Reference Manager debería aparecer como se muestra en la siguiente imagen.

WCFTUT_17

6. En el formulario de Reference Manager, debe hacer click en el tab Projects. Debemos hacer click en la cajita de check al lado de PrimerServicioWCF y luego click en el botón OK. Esto creará un directorio bin bajo el sitio web HostServer y dos archivos mas que fueron copiados a este nuevo directorio desde el proyecto PrimerServicioWCF. Cuando el sitio web esta corriendo, el servidor IIS Express ejecutará el código en el directorio bin.

Como hacer test de nuestra aplicación de alojamiento (host)

Ahora podemos correr el nuevo sitio web HostServer. Si presionamos Ctrl + F5 o podemos hacer los mismo desde el menu de Visual Studio DEBUG -> Start Without Debugging y luego de esto veremos un sitio web vacío en el browser con un error.

 

WCFTUT_18

Si por el contrario seleccionamos del menu DEBUG -> Start Debugging podremos ver un formulario que nos advertirá que la depuración no esta habilitada (Debugging Not Enable).

¿ Que es IIS Express ?

Luego de ejecutar nuestro sitio web HostServer debería estar configurado y corriendo. Ahora este sitio corre dentro del IIS Express. IIS Express es una versión más liviana y optimizada para los desarrolladores. Este servicio web es similar IIS (Internet Information Server), pero tiene algunas limitaciones, por ejemplo solo soporta protocolos HTTP y HTTPS.

Cuando creamos un sitio web con Visual Studio, IIS Express automáticamente asigna un puerto para el. Podemos ver que puerto fue asignado a nuestro sitio web en la ventana de Propiedades de nuestro sitio web.

Normalmente IIS Express es ejecutado dentro de Visual Studio cuando necesitamos debuguear nuestro sitio web. Pero existe otra opción para ejecutar el IIS Express desde fuera de Visual Studio, y podemos ejecutar la siguiente línea de comandos con los siguiente parámetros:

“C:\Program Files\IIS Express\iisexpress”  /path:c:\aplicación\  /port:[puerto] /clr:v4.0

En este caso para nuestro sitio web debería ser como sigue:

“C:\Program Files\IIS Express\iisexpress”  /path:C:\ProyectoWCF\Proyectos\MiPrimerServicioWCF\HostServer /port:57514 /clr:v4.0

Tener en cuenta que iisexpress.exe esta en la Program Files\IIS Express. Si nuestro sistema es x64 debería estar en Program Files (x86)\IIS Express.

Debemos Modificar el archivo Web.Config.

Hasta aquí ejecutamos nuestro sitio web pero solo es un sitio web vacío. Por ahora no esta alojando nuestro servicio PrimerServicioWCF. ¿Pero por qué es esto?, porque no hemos definido que servicio nuestro sitio web debería alojar.

Para especificar que servicio va alojar nuestro sitio web, debemos agregar un archivo .svc al mismo. Bien debemos modificar el archivo Web.Config de nuestro sitio web para alojar nuestro servicio PrimerServicioWCF. Abriremos el archivo Web.config de nuestro sitio web y deberemos cambiar lo siguiente.

WCFTUT_19

El código agregado a la sección system.serviceModel es lo único que agregaremos aquí.

httpGetEnabled es una configuración importante aqui, porque queremos que otras aplicaciones esten posibilitadas de localizar la metadata de este servicio a través del protocolo HTTP. Sin la metadata, la aplicación cliente no puede generar el proxy y no podrá configurarlo para poder usar el servicio.

nodo configuration en este archivo es lo que llamamos el nodo raíz.

nodo system.serviceModel es nodo que incluye toda la configuración para el servicio WCF.

nodo serviceHostingEnvironment es usado para especificar el ambiente del hosting.

nodo serviceActivations es donde especificamos el nombre del servicio y su dirección relativa.

Dentro del nodo serviceBehaviors, podemos definir distintos comportamientos para un servicio. En nuestro ejemplo hemos especificado un comportamiento para leer la metadata de nuestro servicio.

Ejecutando la aplicación de alojamiento (host)

Ahora si ejecutamos el sitio web presionando Ctrl + F5, volveremos a ver el mismo sitio vacío que antes con el mismo error. Pero ahora tenemos un servicio alojado en nuestro sitio web, solo debemos agregar lo siguiente a nuestra dirección del sitio web HostServer/PrimerServicioWCF.svc . Ahora nuestra URL debería ser de la siguiente manera: http://localhost:57514/HostServer/PrimerServicioWCF.svc. Luego de esto podremos ver la descripción de nuestro servicio, que es el archivo wsdl, o como crear un cliente para consumir este servicio. En nuestro browser veremos una página similar a la siguiente:

WCFTUT_20

Si hacemos click en link WSDL de esta página obtendremos el archivo XML del WSDL para este servicio. El archivo WSDL nos devuelve toda la información del contrato de este servicio. En la próxima parte de este tutorial utilizaremos esta información para generar nuestro proxy para nuestra aplicación cliente.

Bien hasta aquí esta tercera parte del tutorial, vimos como podemos alojar nuestro servicio en IIS Express y como podemos obtener toda su información. Si tiene alguna duda o comentario puede dejarlo debajo de este post. Hasta la próxima parte.

Código: Primer Servicio con WCF

Tutorial WCF Primera Parte: Conceptos básicos de WCF

Tutorial WCF Segunda Parte: Creando un servicio con WCF

Tutorial WCF Cuarta Parte: Creando un cliente para consumir nuestro Servicio WCF 

 

 

The following two tabs change content below.
Admin

Admin

Administrador de Dotnetuy, con más de 20 años de experiencia en el mundo de la informática y el desarrollo de software en diferentes lenguajes, trabajando en backend y frontend, desde sus primeros pasos con clipper cuando comenzaba la década de los 90’s , y continuando con pascal, C, C++, Visual basic, y multiples gestores de bases de datos hasta hoy en día con C# y todas las técnologias relacionadas con .NET.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *