Para empezar a desarrollar con WCF teniendo instalado Windows XP (es decir también el IIS 5.1) como sistema operativo y Visual Studio 2005 en una máquina , se requiere realizar los siguientes pasos:
1. Bajar e instalar el Framework 3.0, ahora ya se baja automáticamente dentro del proceso de Windows Update.
3. Instalar el paquete vsextwfx.msi que nos acabamos de bajar.
4. Listo, ya podemos entonces usar WCFo WPF y crear un proyecto de este tipo desde VS 2005:
En próximas entradas de este blog, se realizará ejemplos de cómo crear un servicio utilizando WCF desde VS 2005 con Win XP (IIS 5.1). Este sólo hablará de como configurar WCF para que funcione correctamente en una máquina con estas características.
Existen 3 formas de hostear un servicio creado en WCF
- Auto -Hosteado: una aplicación manejada ej: App. Windows, App. de Consola. puede soportar ser el host de un servicio WCF. Este tipo de hosting suele utilizarse en la etapa de desarrollo y pruebas, para testear el servicio WCF creado.
- IIS (con el Internet Information Services): Hostea un servicio WCF como si fuera un servicio Web, con la diferencia que al archivo que se hará referencia en la URL termina en .svc, mientras que en el servicio Web creado con .NET es .asmx. Usa el protocolo HTTP necesariamente si nuestro IIS es de la versión 5.1 o 6.0 para la comunicación.
- Windows Process Activation Service (WAS): Parecido al IIS con la diferencia que soporta otros protocolos de comunicación a más de HTTP: Namepipes, TCP, etc. (Además de muchas otras características)
Con nuestro ambiente (Winxp + VS 2005 + Fr 3.0) sólo podemos trabajar con los dos primeros tipos de hosting. Sin embargo con el segundo (IIS), solemos tener problemas, puesto que ya creamos nuestro servicio WCF y lo exponemos mediante IIS pero al momento de llamar al servicio este no funciona, para probar lo llamamos desde el Internet Explorer y el resultado es el siguiente:
Mustra el .svc como si fuera un simple archivo de texto expuesto desde IIS. Si esto ocurre, para que funcione este servicio necesitaremos correr un utilitario que viene con el Framework 3.0: ServiceModelReg.exe que sirve para instalar ciertas extenciones y metadata en el IIS, este aplicativo se encuentra normalmente en:
C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation
y desde línea de comando escribiremos lo siguiente: ServiceModelReg.exe -i (Mas Información de ServiceModelReg.exe).
Luego de esto, nuestro IIS ya debería ser capaz de hostear los .svc. Sin embargo, ciertas ocasiones el IIS tiene cierta Metadata y extensiones corruptas debido a la propia instalación del fr 3.0 o de las mismas extensiones WCF, por lo que nos puede continuar sucediendo el mismo problema.
Para limipiar y reestablecer nuestro IIS, deberemos correr un último utilitario que se lo puede descargar desde la siguiente página: CleanIISScriptMaps.
Se corre este utilitario, luego volvemos a correr el ServiceModelReg.exe y ahora si nuestro servicio WCF estará bien hosteado y funcionando. Para probar, nuevamente se lo llama por el Browser y el resultado es el siguiente:
Listo, ahora si nuestro WCF se encuentra bien configurado y listo para usarse!!