En este post vamos a crear un servicio WCF y lo vamos a publicar en el Windows AppFabric. Igualmente vamos a monitorear el servicio utilizando el “dashboard” del AppFabric.
Creando el Servicio WCF
El primer paso a realizar es crear un servicio WCF en Visual Studio el cual vamos a publicar en el AppFabric y el IIS. Este servicio tiene una operación que simplemente recibe el nombre de un producto y regresa el código de este producto. La interface del servicio es la siguiente:
La implementación de este servicio solamente comprende la devolución de un GUID generado cada vez que el componentes es invocado; es decir, vamos a tener un código nuevo en cada retorno.
En el siguiente paso vamos a crear una aplicación web en nuestro sitio web por defecto – default web site – de nuestro IIS, para lograr esto damos botón derecho sobre el sitio web y seleccionamos “Add Application.
Seguidamente nos aparece el cuadro de diálogo para configurar nuestra aplicación Web el cual se puede ver en la siguiente figura.
En este cuadro de diálogo se configuran los siguientes ítems:
-
Alias: Es el nombre que llevará nuestra aplicación Web y a través de la cual la accederemos desde nuestra aplicación.
-
Application Pool: Es el proceso que va a ejecutar nuestra aplicación Web. Debe de estar configurado para que use el mismo framework de .NET con el que desarrollamos nuestra aplicación - en nuestro caso el 4.0
-
Physical Path: Es la ruta física en donde se van a guardar los componentes del servicio; es decir, en ese directorio estarán nuestros binarios y nuestros archivos de configuración, pero el directorio virtual siempre estará en el IIS y cuando alguien lo invoca, el IIS ejecuta los componentes guardados en la ruta física.
El siguiente paso es publicar el servicio en IIS. Esto lo vamos a conseguir dándole botón derecho
Seguidamente nos aparece el diálogo para configurar la forma en que queremos publicar el servicio. Este diálogo me pide la dirección en donde lo vamos a publicar, igualmente que archivos vamos a poner en la ubicación de publicación seleccionada. Lo primero que hacemos es seleccionar el botón del target location para establecer la ubicación del servicio que vamos a publicar.
Después de esto vamos ver el diálogo donde podemos seleccionar que aplicación web vamos a utilizar como contenedor para nuestro servicio, en este caso vamos a utilizar la recién creada ServicioPOS.
Cuando seleccionamos la opción Open regresamos a la pantalla de configuración para publicar el servicio pero ya con la dirección seleccionada en la pantalla anterior configurada. Por ahora los demás campos los dejamos como están en la pantalla y seleccionamos publish.
En este momento el proceso de publicación inicia y visual studio nos notifica el estado del mismo. Cuando esta listo el servicio para ser consumido podemos ver el siguiente mensaje en la ventana de output de Visual Studio.
Una vez publicado podemos probar el servicio desde el navegador de su preferencia utilizando el URL que nos da la ventana de output del mismo. Sin embargo como podemos ver en este caso, se nos presenta un error porque la aplicación web no permite inspeccionar el contenido del directorio.
Para solucionar este error procedemos a habilitar esta característica de la aplicación Web seleccionando la opción de Directory Browsing.
Luego le seleccionamos habilitar en la cejilla de la derecha de la opción seleccionada.
Después de esto ya podemos probar el servicio desde el navegador. Primero nos aparece el contenido de la aplicación web.
Aquí seleccionamos el archivo svc y nos aparece el servicio listo para probarse.
Ahora procedemos a crear un cliente – en este caso una aplicación WPF – que nos permita consumir el servicio. Para esto creamos una nueva aplicación WPF y agregamos una referencia al servicio POS.
El siguiente paso es crear la interface para consumir el servicio. Esta se presenta en la siguiente figura:
Luego procedemos a agregar el código para consumir el servicio desde la ventana.
El siguiente paso es habilitar el monitoreo en el AppFabric para ver que tan utilizado es el servicio que acabamos de crear – esto será un tema que es digno de otro post completo. Sin embargo si vamos a al a sección servicios del AppFabric y seleccionamos el servicio que recién creamos vamos a poder ver si el monitoreo está habilitado o no para el servicio específico.
Luego de esto procedemos a ejecutar nuestro cliente una cuantas veces para ver si el AppFabric loguea los requests hechos a WCF desde el cliente WPF.
Por último vamos al “dashboard” del AppFabric y podemos verificar que el servidor ha logueado las solicitudes a WCF – en este caso solo han habido solicitudes exitosas, es decir terminadas.
3 comentarios:
Hola Diego.
Primero felicitarte por tu blog.
Segundo, podrías mostrar cómo publicar un servicio pero usando el enlace net.tcp.
Hola Wendy,
primero que todo gracias por tomarte el tiempo para leer el blog.
Respecto al segundo punto, estaré publicando un post al respecto la próxima semana.
Saludos
hola que tal exelente blog...
una duda comentabas que en una prox publicacion estarias mencionanado como monitorear los wcf.. ya lo publicaste ..
saludos.
Publicar un comentario