Conectarse a un Servicio de WCF para SSL con Windows Phone 7 Emulator

Artículo original publicado el domingo, 19 de junio de 2011

Fue muy divertido tratar de entender por qué mi aplicación de Windows Phone 7 no se podía conectar a mi extremo de WCF. Había probado cosas exhaustivamente con una aplicación de cliente estándar de Windows Forms y todo funcionó de maravilla, pero cada vez que trataba de llegar al mismo extremo desde mi emulador de WP7 obtenía el mismo error molesto de que “no había ningún extremo escuchando” y, si uno mira la excepción interna, era algo como una respuesta de 404 No encontrado. Por supuesto que no tenía ningún sentido, el extremo estaba allí. Aprendí dos cosas para resolverlo:

  1. En realidad el error significaba que el emulador de Windows Phone no tenía la entidad de certificación de raíz para el certificado SSL en la lista de certificados de confianza. Lamentablemente incluso con WP7 1.1 (es decir, Mango SDK), aún no parece una manera fácil de hacer esto. Lo que realmente hay que hacer es colocar el archivo de raíz CA .cer en un archivo zip en algún lugar, y luego colocarlo en un sitio web donde se pueda descargar. Podría ser un servidor de desarrollo local, puede enviárselo por correo electrónico a usted mismo a un correo como HotMail, etc. Navegue hasta ese archivo desde el emulador y lo descargará y luego le mostrará el contenido del archivo zip. Si hace clic en el archivo .cer, se ofrecerá a instalárselo. Acéptelo y lo colocará en la lista de entidades de certificados de confianza y ya está listo.  O eso es lo que puede parecer... (consulte el siguiente elemento).
  2. Los pasos que describí en el punto 1 funcionan de maravilla... hasta que detiene y reinicia el emulador. Parece que no tiene estado persistente, así que cada vez que lo detiene (o las muchas veces que se detiene solo o se desconecta de Visual Studio) tiene que repetir el paso 1 de nuevo. Cada vez. Es muy molesto. No sé con seguridad si hay planes de solucionar esto pero creo que se considerará.

Esta entrada de blog es una traducción. Puede consultar el artículo original en Connecting to an SSL WCF Service with Windows Phone 7 Emulator