none
help explicacion wcf RRS feed

  • Pregunta

  • hola amigos he estado investignado sobre wcf hasta el momento no he podido averiguar como comunicarme a otro proyecto de otra solucion suponiedo que realizen la misma tarea por ejemplo realize una solucion donde introduje un proyecto que describe el servicio de wcf y otra solucion que la utiliza pero eso es lo que no logro mi duda es que los servicios solo funcionan si los proyectos estan dentro de la misma soluciono si se puede comunicar entre solucines?

    p.s: por favor necesito su respuesta para poder buscar algo relacionado con el tema que ustedes con su gran ayuda me podrian aconsejar

     

    miércoles, 9 de marzo de 2011 17:35

Respuestas

  • Hola Omar, 

    No sé si he entendido muy bien tu pregunta, quizá deberías concretar más. WCF permite evidentemente la conexión entre dos soluciones de software, como sabrás a través de SOAP y por lo tanto con independencia del lenguaje utilizado.

    Eso sí, para poder consumir el servicio WCF deberás tener una instancia del mismo ejecutándose y agregar la referencia en el otro proyecto. Tu WCF ¿Es de tipo consola? ¿Lo quieres ejecutar en el IIS?

    Un saludo,


    Jacob Mendoza, analista de software en http://www.domitienda.com
    Blog: http://www.ingenieriadelcaos.com
    Twitter: @jacobmendoza
    • Marcado como respuesta omar_10031980 viernes, 11 de marzo de 2011 17:49
    viernes, 11 de marzo de 2011 16:15
  • Hola de nuevo!

    Lo más fácil es utilizar "Add Service Reference" y pulsar el botón "Discover". De éste modo te tiene que desplegar todos los WCF contenidos en la solución. De todos modos, por si quieres probarlo de otro modo te adjunto otro procedimiento.

    Los servicios en WCF pueden ser alojados en un servicio de windows, Internet Information Server, windows forms o por ejemplo programa de consola. Éste último método podrías utilizarlo para probar en local.

    Agrega un programa de consola a la solución y añádele una referencia al proyecto donde tengas el servicio en WCF.

     

    Uri uri = new Uri("http://localhost:8443/MiServicio");
    ServiceHost host = new ServiceHost(typeof(EspacioNombresServicio.MiServicio), uri);
    
    BasicHttpBinding binding = new BasicHttpBinding();
    ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
    smb.HttpGetEnabled = true;
    host.Description.Behaviors.Add(smb);
    host.AddServiceEndpoint(typeof(EspacioNombresServicio.IMiServicio), binding, "");
    
    try
    {
    	host.Open();
    
    	Console.WriteLine("Servicio escuchando en " + uri.AbsoluteUri);
    	Console.ReadLine();
    }
    finally { host.Close(); }
    

    Ejecutando el programa generado con permisos de administrador (si utilizas Vista o superior) podrás tener hosteado en tu equipo sin dificultad el servicio funcionando en "producción", por decirlo de algún modo. Lo único que te hace falta ahora es ir al proyecto donde lo quieras utilizar y añadir una "Service reference" (está en el apartado References). En el apartado Address deberás establecer http://localhost:8443/MiServicio, y si todo va bien después de unos segundos aparecerán los métodos que contiene.

    Un saludo,


    Jacob Mendoza, analista de software en http://www.domitienda.com
    Blog: http://www.ingenieriadelcaos.com
    Twitter: @jacobmendoza
    • Marcado como respuesta omar_10031980 martes, 15 de marzo de 2011 0:01
    viernes, 11 de marzo de 2011 18:20

Todas las respuestas

  • Hola Omar, 

    No sé si he entendido muy bien tu pregunta, quizá deberías concretar más. WCF permite evidentemente la conexión entre dos soluciones de software, como sabrás a través de SOAP y por lo tanto con independencia del lenguaje utilizado.

    Eso sí, para poder consumir el servicio WCF deberás tener una instancia del mismo ejecutándose y agregar la referencia en el otro proyecto. Tu WCF ¿Es de tipo consola? ¿Lo quieres ejecutar en el IIS?

    Un saludo,


    Jacob Mendoza, analista de software en http://www.domitienda.com
    Blog: http://www.ingenieriadelcaos.com
    Twitter: @jacobmendoza
    • Marcado como respuesta omar_10031980 viernes, 11 de marzo de 2011 17:49
    viernes, 11 de marzo de 2011 16:15
  • hola y muchas gracias por responder si entendiste muy bien mi pregunta y es eso precisamente lo que no logro hacer que la referencia se agrege no se cual opcion utilizar la de agregar referencias o agregar referencia se servicio, cuando intento por la primera que mencione si lo agraga como una instancia pero no estan los procedimientos que realize, y por la segunda simplemente no la encuatra por que no esta en la misma solucion, mi proyento no es tipo consola es winform, y si quiciera ejecutarlo con el IIS y si hay otra forma porque en lo que investigue todos lo hacen correr con emulador del vs se prodria decir.

    ps: espero su respuesta gracias en verdad necesito la explicacion y algun ejemplo que me puedan sugerir que sea un poco avanzado.

    viernes, 11 de marzo de 2011 18:01
  • Hola de nuevo!

    Lo más fácil es utilizar "Add Service Reference" y pulsar el botón "Discover". De éste modo te tiene que desplegar todos los WCF contenidos en la solución. De todos modos, por si quieres probarlo de otro modo te adjunto otro procedimiento.

    Los servicios en WCF pueden ser alojados en un servicio de windows, Internet Information Server, windows forms o por ejemplo programa de consola. Éste último método podrías utilizarlo para probar en local.

    Agrega un programa de consola a la solución y añádele una referencia al proyecto donde tengas el servicio en WCF.

     

    Uri uri = new Uri("http://localhost:8443/MiServicio");
    ServiceHost host = new ServiceHost(typeof(EspacioNombresServicio.MiServicio), uri);
    
    BasicHttpBinding binding = new BasicHttpBinding();
    ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
    smb.HttpGetEnabled = true;
    host.Description.Behaviors.Add(smb);
    host.AddServiceEndpoint(typeof(EspacioNombresServicio.IMiServicio), binding, "");
    
    try
    {
    	host.Open();
    
    	Console.WriteLine("Servicio escuchando en " + uri.AbsoluteUri);
    	Console.ReadLine();
    }
    finally { host.Close(); }
    

    Ejecutando el programa generado con permisos de administrador (si utilizas Vista o superior) podrás tener hosteado en tu equipo sin dificultad el servicio funcionando en "producción", por decirlo de algún modo. Lo único que te hace falta ahora es ir al proyecto donde lo quieras utilizar y añadir una "Service reference" (está en el apartado References). En el apartado Address deberás establecer http://localhost:8443/MiServicio, y si todo va bien después de unos segundos aparecerán los métodos que contiene.

    Un saludo,


    Jacob Mendoza, analista de software en http://www.domitienda.com
    Blog: http://www.ingenieriadelcaos.com
    Twitter: @jacobmendoza
    • Marcado como respuesta omar_10031980 martes, 15 de marzo de 2011 0:01
    viernes, 11 de marzo de 2011 18:20
  • hola de nuevo y machas gracias por responder entiendo lo que tratas de decirme lo entiendo muy bien pero si no fuera mucha molestia auque se que lo es por que hasta el momento son pocos como tu que me respondieron mi problema es el siguiente tengo mi aplicacion realizada y tengo que añadirle un wcf por le motivo que quiero que mi aplicacion tenga un formulario que aparesca en otra maquina, me explico tengo un formulario en el cula lleno por ejemplo

    nombre: omar

    cantidad de pedidos

    pro1:21

    pro2:3

    pro3:45

    este es un formulario en el boton enviar manda a otra maquina donde se encuentra otra persona y recibe el formulario en su maquina y realiza dicho despacho esto es lo que no puedo realizar con wcf y me aconsejaron que era la mejor forma de hacerlo ya que busque como hacerlo de otra manera megustaria que me pudieses dar algunos ejemplos similarea al que comente ya se que lo detalle mucho pero espero que se haya entendido.

    ps: por favor espero su respuesta solo necesito un empujoncito para alcanzar la meta  y con su ayuda lo hare muchas gracias de nuevo  

    martes, 15 de marzo de 2011 0:12