none
Configurar mediante interfaz el puerto de comunicación en WCF

    Debate general

  • Hola, es mi primera pregunta en el foro. Quiero desarrollar con WCF. He visto muchos ejemplos de esta y otras webs, pero en ninguna encuentro una explicación en código sobre cómo desarrollar una solución que corra toda bajo windows en donde tanto en la aplicación host como en la aplicación cliente, se pueda configurar en tiempo de ejecución, el número de puerto para la comunicación. ¿En dónde puedo encontrar un buen ejemplo? Los ejemplos de aquí me permiten ejecutar toda la solución en mi entorno de desarrollo con puerto 8080, pero para un entorno real me parece limitado. ¿Lo debo programar para que el usuario lo modifique en tiempo de ejecución? Estoy un poco confundido.
    jueves, 16 de febrero de 2012 16:47

Todas las respuestas

  • Hola Pachinga,

    Para levantar servicios desde código, en tiempo de ejecución, tienes que usar el ServiceHost:

    Uri baseAddress = new Uri("net.pipe://localhost/MiServicio");
    ServiceHost serviceHost = new ServiceHost(typeof(MiServicio), baseAddress);
    serviceHost.AddServiceEndpoint(typeof(IMiServicio), new NetNamedPipeBinding(NetNamedPipeSecurityMode.None), "Pipe");
    servicehost.AddServiceEndpoint(typeof(IMiServicio), new NetTcpBinding(), "net.tcp://localhost:800/MiServicio");
    servicehost.Open();

    Desde aquí puedes especificarle todos los parámetros del endPoint y del Binding.

    Otra posibilidad es levantar el servicio sin especificar la configuración del endPoint y hacer esto en el app.config...

    De cualquier forma, si lo que quieres es simplemente tener una configuración diferente para desarrollo, producción y pruebas; existe una forma de transformar el archivo app.config dinámicamente usando unas herramientas específicas:

    http://mrubino.net/2012/01/23/deploy-web-con-configuracion-dinamic/

    Ahí encontrarás una forma de hacerlo en plan iniciación, y en este otro encontrarás uno más específico:

    http://vishaljoshi.blogspot.com/2009/03/web-deployment-webconfig-transformation_23.html

    Un saludo,


    Fernanando Escolar - http://www.programandonet.com/ - @fernandoescolar

    viernes, 17 de febrero de 2012 8:06
  • Muchas gracias ! la idea es controlar, gestionar el servicio en tiempo de ejecución. Cuando pueda me instruyo y lo ejercito en base a tus recomendaciones. 

    Pachinga

    viernes, 17 de febrero de 2012 14:40