viernes, septiembre 04, 2009

[Agradecimiento] SilverLight como Plataforma de Desarrollo

En nombre propio y en nombre de todos los que conformamos el Core y los líderes de la comunidad BogotaDotNET, agradecemos a todos los asistentes a esta interesante charla.

Además nuestro mayor agradecimiento a Rodrigo Díaz Concha por su amable colaboración para esta conferencia y en compartir con todos nosotros sus conocimientos sobre el tema.

Algunas fotos del Evento:

DSC01347 DSC01351 DSC01362 DSC01358 DSC01357 DSC01376

 

El equipo de dirección de la comunidad junto con Rodrigo:

DSC01377 DSC01378

miércoles, septiembre 02, 2009

Instalación de Servicios WCF en Servidor IIS 7

 

Hola a todos!!

En estos días he estado trabajando con servicios WCF, en mi caso los servicios están hospedados (Hosted) en IIS / en una aplicación ASP.NET, para lograr esto existe en ASP:NET un control o servicio WCF cuya extensión es .svc.

Al crear estos archivos y publicar el sitio ASP.NET para tener la disponibilidad de los servicios a través de IIS 7 me encontré con algunos inconvenientes los cuales los resolví aplicando los siguientes pasos.

1. Se crea un sitio web en IIS, se le asigna un puerto específico, en el caso de  este ejemplo es el puerto 81 el que utilizan los servicios WCF. Sin embargo podemos escoger cualquier puerto y verificar que este puerto este abierto en el firewall si los servicios van a estar expuestos a internet.

2. Se copian los archivos publicados de la solución de los servicios en una carpeta específica, que es la misma que se ha definido al momento de crear el sitio web en el IIS.

3. Nos aseguramos que el namespace ServiceModel este activo y registrado en nuestro servidor IIS, para ello abrimos la consola de comandos en modo administrador y ejecutamos el siguiente comando: "%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r –y

4. La ejecución de este comando nos muestra unos resultados como aparece en la siguiente figura:clip_image002

5. Abrimos IIS 7 y seleccionamos el sitio correcto. Se revisan los Handler Mappings como se ve en la figura:

6. clip_image004

7. Doble clic sobre Handler Mapping, aparece la siguiente pantalla:

8. clip_image006

9. En esta pantalla revisar si existen las entradas para la definición de los *.svc, ya que en nuestro caso los Hosting de los servicios WCF son en IIS con ASP.NET.

10. Para crear estos handlers hacemos clic derecho sobre la lista, nos muestra el siguiente menú: clip_image008

11. Seleccionamos la primera opción Add Managed Handler…, nos muestra la pantalla en la cual colocamos los datos a ingresar: clip_image010

12. Los valores a colocar para Request path: *.svc, Type: System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Name: svc-Integrated. Las restricciones las dejamos por default. Este es el primer registro. Debemos colocar otros 2 registros.

13. Los valores a colocar para Request path: *.svc, Type: %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll, Name: svc-ISAPI-2.0. Las restricciones las dejamos por default. Este es el segundo registro.

14. Los valores a colocar para Request path: *.svc, Type: %SystemRoot%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll, Name: svc-ISAPI-2.0-64. Las restricciones las dejamos por default. Este es el tercer registro si es para un servidor de 64 bits en donde ejecutamos nuestro IIS.

15. Luego verificamos si nuestros servicios quedaron funcionando de manera correcta, en la pantalla siguiente: clip_image012

16. Seleccionamos un servicio, como el que se muestra en la figura, clic derecho y en el menú que aparece le damos Browse, lo cual nos abre una ventana del explorador de internet para verificar si nuestro servicio está funcionando de manera correcta.

17. El explorador de internet nos debe mostrar una pantalla como la siguiente: indicando que el servicio está funcionando correctamente.clip_image014

18. El siguiente paso es corregir en el web.config del sitio ASP.NET que hospeda los servicios WCF, las cadenas de conexión a las bases de datos que utilizamos para que nuestros servicios puedan funcionar de manera correcta.

En nuestro caso verificamos la sección ConnectionStrings del web.config y colocamos los valores correctos: <connectionStrings>

<add name="ConnectNETDB" connectionString="Data Source=ralvarado;Initial Catalog=MibaseI;User ID=dbusr_FFII;Password=pqr2; Timeout=999999" providerName="System.Data.SqlClient" />

<add name="ConnectNETDBII" connectionString="Data Source=ralvarado;Initial Catalog=FunzaNetII;User ID=dbusr_FFII;Password=pqr2; Timeout=999999" providerName="System.Data.SqlClient" />

<add name="FaseIIConnectNETDB" connectionString="Data Source=ralvarado;Initial Catalog=FunzaNetII;User ID=dbusr_FFII;Password=pqr2; Timeout=999999" providerName="System.Data.SqlClient" />

</connectionStrings>

19. El siguiente paso es ir a la solución que consume los servicios que estamos exponiendo en el IIS en nuestra solución ASP.NET a través de los archivos *.svc y colocar la dirección correcta de cada uno de los servicios en el app.config si es una aplicación Windows, o en el web.config si es una aplicación web.

Verificamos y cambiamos el endpoint de los Servicios WCF que estemos exponiendo en nuestra aplicación : <endpoint address="http://ralvarado:81/ServicioDemo1.svc"

binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IServicioDemo1"

contract="ServicioDemo1Client.IServicioDemo1"

name="WSHttpBinding_IServicioDemo1">

<identity>

<dns value="localhost" />

</identity>

</endpoint>

20. Como podemos observar en el tag address=http://ralvarado:81/ServicioDemo1.svc, hemos cambiado a ralvarado:81 que es el nombre del servidor y el puerto por donde definimos en el sitio que se va a exponer los servicios WCF.

21. Probar nuestra aplicación que consume los servicios para comprobar que todo esté funcionando como debe ser.

22. En nuestra aplicación que consume los servicios debemos también modificar el web.config para colocar la dirección correcta de los servicios publicados..

 

Bueno espero que esto los ayude al momento de publicar los servicios WCF, que como dice un gran amigo “Servicios WCF 1 Hora de desarrollo 3 Horas Configurando”.

Hasta la próxima!!!

Un Abrazo!

martes, septiembre 01, 2009

[Curso]PROGRAMANDO A FONDO CON C#

 

Una de las personas que sabe mucho sobre el tema, es MVP de Microsoft y con auspicio de la comunidad BogotaDotNET esta preparando este curso.

Para mas información http://www.bogotadotnet.org/Cursos/Programando-a-fondo-con-C-.aspx