none
WCF sin IIS RRS feed

  • Pregunta

  • Buen día, comunidad!

     

    Estoy por empezar a desarrollar una aplicación a tres capas y no soy sino un principiante en el uso de la tecnología WCF.   He estado leyendo bastante al respecto y he encontrada muchos ejemplos de servicios WCF Web mediante IIS y también locales (cliente y servicio ejecutándose en la misma máquina LOCALHOST).  El asunto es que necesito que la aplicación quede distribuida (Base de Datos y Lógica de Negocios en un equipo diferente al de los clienteas) y NO PUEDO usar IIS.

     

    ¿Qué opción me queda? ¿Dónde puedo ver ejemplos de cómo hacerlo?

     

    Muchas gracias por la atención y colaboración que sé que obtendré.

     

    Bendiciones!

    lunes, 2 de agosto de 2010 17:00

Respuestas


  • puedes especificar un puerto en un sitio, pero no usando Win XP, con un windows version server si podrias ya que permite crear sitios web, en cambio XP solo son subsitios del Default

    el tema es que sino defines un host para los servicios estos nucna resolveras o se podra acceder a ellos

    has una publicacion de los servicio y obtiene los svc y las dll, llevalos a tu IIS

    How to set up an ASP.NET web site with IIS

    en el link explcia como hacer el deploy de un sitio, el de un svc es igual solo que no tendras pagians sino servicios

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta AlexLander jueves, 5 de agosto de 2010 18:24
    jueves, 5 de agosto de 2010 18:21

Todas las respuestas

  • hola

    porque es que no puedes usar IIS, este esta presente en todas casi todas las distribuciones de Windows, ademas teniendo en cuenta que es distribuido, se supone que los servicios estaran separados de la presentacion fisicamente, o sea el servicio estara por ahi en un Win Server que si tienen IIS

     

    la otra alternativa seria usar un servicio de Windows:

    pero en iis es mas simple, mas que and apor el deploy de los servicios, no necesitas detener el servicio de iis para hacer el deploy, en cambio el servicio de windows si

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 2 de agosto de 2010 17:08
  • Gracias, Leandro.

     

    Necesito que la aplicación no dependa de IIS porque es posible que me toque instalar la capa de Negocios en un equipo sin Windows Server.

     

    El ejemplo que me indicas ya lo había visto.  El asunto es que necesito saber qué cambios debo hacerle a ese código para que el cliente NO busque el servicio en el mismo equipo, sino en otro (que no use LOCALHOST, sino digamos 192.168.5.7).

     

    Muchas gracias!

    lunes, 2 de agosto de 2010 20:15
  • En el config del cliente debes buscar el endpoint del servicio y cambiar el atributo address a la dirección del cliente que desees.

     

    Cordial saludo,

     


    Mauricio Atanache G. - MCP
    Bogotá - Colombia
    "Bienaventurados los Pesimistas. Por que hacen BACKUPS."
    lunes, 2 de agosto de 2010 20:34
  • hola

    revisa este link


    veras que elli defin el xml de configuracion del cliente

    la parte importante es

    <endpoint
        name="endpoint1"
        address="http://localhost/ServiceModelSamples/service.svc"
        binding="wsHttpBinding"
        bindingConfiguration="WSHttpBinding_IHello"
        behaviorConfiguration="IHello_Behavior"
        contract="IHello" >

    donde defines el adreess a dodne el clietne busca el servicio, cambiando de esta el localhost por el ip o nombre de pc donde has alojado el servicio deberia buscarlo alli


    saludos

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 3 de agosto de 2010 4:26
  • Gracias, Leandro.

    Gracias, Mauricio.

     

    Probé a hacer lo que me han dicho, y cambié de localhost a sistemas4 (es el nombre del equipo).  Intenté acceder al servicio desde el mismo equipo (donde probaba cuando el valor de configuración era localhost) y me aparece el siguiente mensaje:

     

    No se pudo conectar a http://sistemas4:2852/WFCWebSite/Service.svc. Código de error TCP 10061: No se ha podido establecer conexión ya que el equipo de destino ha denegado activamente dicha conexión 192.168.2.14:2852.

     

    Pensaba que era el Firewall, pero está desactivado.

     

    ¿A qué puede deberse?

     

    Muchas gracias!

    martes, 3 de agosto de 2010 12:34
  • hola

    si abres el browser y pones la url

     http://sistemas4:2852/WFCWebSite/Service.svc

    esta te resuelve devolviendo la pantalla con la info del servicio, o da error que no puede resolver

    puede que el tema es que los servicios este mal en el deploy

    asegura primero que los servicios son accesibles, prueba usando

    WCF Service Configuration Editor y WCF Test Client

    con la tool explciada en el link podras testear tus servicio

    saludios


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 3 de agosto de 2010 12:41
  • Buen día.

     

    Leandro, qué pena, pero he probado y probado de diferentes maneras, y nada.

     

    El servicio me funciona excelente pero desde el mismo equipo direccionando a http://localhost:2852/wcfservice/service.svc, pero de ninguna otra forma.

     

    Y el asunto es que necesito que funcione haciendo uso del mismo remotamente.

     

    ¿Hay alguien que me pueda ayudar?

     

    Muchas gracias!

    miércoles, 4 de agosto de 2010 16:04
  • hola

    pero sigues usando localhost por lo que veo que estas comentando

    has revisado el web.config del cliente y donde dice localhost lo reemplzas por el nombre o la ip de la pc donde esta el servicio

    http://NombreoIPservidor :2852/wcfservice/service.svc

     

    has probado la tool de test que comente del link para verificar que puedes acceder a los servicio expuesto sremotamente?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 4 de agosto de 2010 16:15
  • Primero que todo, muchas gracias por la atención, Leandro.

     

    Ya he probado con http://SISTEMAS4:2852/wcfservice/service.svc  y con http://192.168.2.14:2852/wcfservice/service.svc  y nada.

     

    Con la herramienta tampoco funciona.  Siempre me dice aquello de que...

     

    "No se pudo conectar a http://sistemas4:2852/WFcWebSite/Service.svc. Código de error TCP 10061: No se ha podido establecer conexión ya que el equipo de destino ha denegado activamente dicha conexión 192.168.2.14:2852."

     

    ¿Qué pasará?

     

    Muchas gracias nuevamente!

    miércoles, 4 de agosto de 2010 16:34
  • si en el browser pones http://sistemas4:2852/WFcWebSite/Service.svc

    este te resuelve ? o muestra un error

    si aqui no resuelve estas teniendo problemas con la publicacion del servicio, por alguna razon no se peude acceder, valida qe als dos PCs se pueden comunicar

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 4 de agosto de 2010 16:37
  • Leandro, aparece lo siguiente en el navegador:

     

    ¡Vaya! Google Chrome no ha podido establecer conexión con la página sistemas4:2852.

     

    ¡¡¡¡ Y estoy probando desde el mismo SISTEMAS4!!!

     

    También he probado desde otros equipos y tampoco funciona.

     

    Y el equipo si tiene conectividad con los demás. Es este donde estoy ahora mismo.

    miércoles, 4 de agosto de 2010 16:56
  • hola

    si estas desde el propio Sistemas4 y no resuelve, podrias probar usando localhost desde sistemas4

    si asi no resuelve, entonces vas a tener que revisar el deploy de lo servicio en porque por alguna razon no responden

    o sea no es un tema de la comunciacion entre PCs, es el propio host del servicio el que tiene problemas

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 4 de agosto de 2010 18:24
  • Leandro, con LocalHost SIEMPRE ha funcionado.

     

    El caso es que yo necesito poder usarlo desde otros equipos.

     

    El servicio funciona perfectamente, pero sólo con LOCALHOST.  Si lo cambio por la IP o por el nombre DNS, deja de funcionar de inmediato.

     

    ¿Qué será?

    miércoles, 4 de agosto de 2010 18:33

  • lo estas hostenado en el IIS ? o es otro el host que usas

    si es el iis valida que este el sitio limitado a rsolver solo en el localhost

    prueba de hacer un deploy en el sitio de una pagina web comun desarrollada con ,net, una aspx simple para validar si puedes ingresar a esa pagina desde otro maquina

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 4 de agosto de 2010 18:42
  • Leandro, no estoy usando IIS, sino un Servicio Web.

     

    Probé a crear una aplicación web ASP.Net y me pasa los mismo: con http://localhost:1222/default.aspx funciona bien, pero de ninguna otra forma.

    miércoles, 4 de agosto de 2010 19:15

  • no estoy usando IIS, sino un Servicio Web.

    ehh el svc es en si mismo el servicio web, pero debe estar en un host que lo cotnenga, los servicio se hacen el deploy en el IIS, o sino en algun otro como ser un servicio de windows, una aplciacion de consola, etc, algo debe correr el servicio para qe este escuchando el puerto definido, esto justamente lo hace el host

    donde estas haciando el deploy de los .svc ? debes ponerlo dentro del algo

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 4 de agosto de 2010 19:20
  • Leandro, yo seguí los pasos indicados en la siguiente dirección al pie de la letra, y funciona perfecto.  Pero yo quiero poder ejecutar el programa cliente en un equipo distinto al que corre el servicio WCF:

     

    http://blogs.microsoft.co.il/blogs/bursteg/archive/2008/02/10/how-to-build-an-n-tier-application-with-wcf-and-datasets-in-visual-studio-2008.aspx

     

    "Create a new WCF Service. Add a new Web Site to the solution, and in the Add New Web Site Dialog, select the WCF Service template. This library contains the Service Implementation and exposes the service via HTTP using IIS or a local file system web server."

     

    ¿Podrían ayudarme a lograr lo que necesito?

     

    Muchas gracias!

    miércoles, 4 de agosto de 2010 19:28
  • hola

    si ya veo, el tema es que alli no menciona nada sobre el deploy del los servicio

    lo unico que menciona es que haces browse y ves el sitio, pero seguro lo que apsa es que esta suando el server virtual del propio VS, no esta usando el IIS

     

    has realizado en algun oportunidad un deploy de un sitio web o sea paginas aspx en el IIS ? si lo ahs realizado el procedimiento ene ste caso es el mismo, toma el deploy del servicio, puedes usar la opcion de Publish del VS, y llevar esos archivos .svc y las dll al sitio que creas en el IIS

    tambien puedes usar esta opcion del VS, para crear directo el sitio en el IIS

    Visual Studio Properties - Web

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 5 de agosto de 2010 3:03
  • Hola, Leandro.

     

    Nunca he publicado en el IIS.  ¿Puedo probar a hacerlo en XP? ¿Se puede hacer que al publicarlo en el IIS el servicio quede escuchando a través de un puerto específico?

     

    Revisé la página de propiedades del sitio web en Visual Studio 2008, pero la pantalla de propiedades es muy distinta a la de los demás proyectos y NO tiene las opciones que se ven en la imagen que me indicas en Visual Studio Properties - Web.

     

    Nuevamente gracias por tu atención y colaboración.

     

    Bendiciones!

    jueves, 5 de agosto de 2010 18:09

  • puedes especificar un puerto en un sitio, pero no usando Win XP, con un windows version server si podrias ya que permite crear sitios web, en cambio XP solo son subsitios del Default

    el tema es que sino defines un host para los servicios estos nucna resolveras o se podra acceder a ellos

    has una publicacion de los servicio y obtiene los svc y las dll, llevalos a tu IIS

    How to set up an ASP.NET web site with IIS

    en el link explcia como hacer el deploy de un sitio, el de un svc es igual solo que no tendras pagians sino servicios

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta AlexLander jueves, 5 de agosto de 2010 18:24
    jueves, 5 de agosto de 2010 18:21
  • Muchas gracias por toda la ayuda que me has brindado.

     

    Voy a estudiar profundamente el asunto de la publicación y probaré a hacerlo.

     

    Luego te cuento el resultado.

     

    De nuevo, gracias!

    jueves, 5 de agosto de 2010 18:24
  • Hola, Leandro.

     

    Funcionó perfecto en otras máquinas después de publicarlo en IIS.

     

    Ahora empiezo a trabajar en pro de lograr esto mismo, pero sin IIS.  Necesito lograrlo es hospedado en un servicio de windows.

     

    Perdona que abuse de tu amabilidad, pero si tienes conocimiento de algún tutorial que me pueda ayudar en mi nueva tarea te lo agradecería.

     

    Bendiciones!

    jueves, 5 de agosto de 2010 19:20
  • Que pena retomar este foro de nuevo.

    estoy intentando publicar un serficio WCF y tenia este error

    http://adefwebserver.com/dotnetnukehelp/misc/configuring_wcf.htm

    realice lo que en este link mensionan. pero ahora tengo un problema distinto, puedo ver el servicio pero cuando intento acceder a el me surge lo siguiente.

    ahora no se que hacer :(

    bueno haciendo una prueba con una aplicación que consumiera el servicio, me surge el siguiente error

    No se pudo conectar a http://XXX.XXX.XXX.XXX:7016/WebService.svc. Código de error TCP 10061: No se puede establecer una conexión ya que el equipo de destino denegó expresamente dicha conexión XXXX:7016.

    Ayuda :)

    miércoles, 28 de septiembre de 2011 15:39