none
Leandro Tuniti... Ayudame por favor....con mi servicio WCF RRS feed

  • Pregunta

  • Hola Leandro y disculpa por el titulo del Post.

    He desarrollado ya el servicio WCF, con el servicio windows y su form cliente. En desarrollo tdo funciona OK. Pero cuando el servicio es puesto en produccion localmente, el cliente no se conecta.

    ¿LO CURIOSO?

    Lo curioso es que cuando detengo el servicio desde el administrador de servicios, he intento conectarme de nuevo desde el cliente me sale el mismo error.

    Parece que el cliente no encuetra el servicio. ¿Que debo hacer? ¿Por donde debo continuar? ¿Que debo revisar?

    ¿Que puede estar pasando?

    Tu tutorial proporcionado

    La prueba de mi Padecimiento que me vuelve loco

    He subido el archivo de la solucion a este link Tutorial desarrollado.

    El error que me sale cuando trato de conectarme desde el cliente es:

    System.ServiceModel.EndpointNotFoundException: No se pudo conectar a net.tcp://localhost:9999/WCFSumar/. La duración del intento de conexión fue de 00:00:01.0468750. 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 127.0.0.1:9999.  ---> System.Net.Sockets.SocketException: No se ha podido establecer conexión ya que el equipo de destino ha denegado activamente dicha conexión 127.0.0.1:9999
       en System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
       en System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
       en System.ServiceModel.Channels.SocketConnectionInitiator.Connect(Uri uri, TimeSpan timeout)
       --- Fin del seguimiento de la pila de la excepción interna ---
    
    Server stack trace:
       en System.ServiceModel.Channels.SocketConnectionInitiator.Connect(Uri uri, TimeSpan timeout)
       en System.ServiceModel.Channels.BufferedConnectionInitiator.Connect(Uri uri, TimeSpan timeout)
       en System.ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection(TimeSpan timeout)
       en System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen(TimeSpan timeout)
       en System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
       en System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan timeout)
       en System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
       en System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System.ServiceModel.Channels.ServiceChannel.ICallOnce.Call(ServiceChannel channel, TimeSpan timeout)
       en System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce(TimeSpan timeout, CallOnceManager cascade)
       en System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
       en System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
       en System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
    
    Exception rethrown at [0]:
       en System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
       en System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
       en formCliente.ServiceReference1.IWCFSumar.SUmar(Int32 x, Int32 y)
       en formCliente.ServiceReference1.WCFSumarClient.SUmar(Int32 x, Int32 y) en D:\DesarrolloNet\TUtorialWCF\WCFServicio\formCliente\Service References\ServiceReference1\Reference.vb:línea 57
       en formCliente.Form1.Button1_Click(Object sender, EventArgs e) en D:\DesarrolloNet\TUtorialWCF\WCFServicio\formCliente\Form1.vb:línea 6
       en System.Windows.Forms.Control.OnClick(EventArgs e)
       en System.Windows.Forms.Button.OnClick(EventArgs e)
       en System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       en System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       en System.Windows.Forms.Control.WndProc(Message& m)
       en System.Windows.Forms.ButtonBase.WndProc(Message& m)
       en System.Windows.Forms.Button.WndProc(Message& m)
       en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       en System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    Gracias por tu ayuda.


    EnterpriseSoft Perú Chachapoyas - Amazonas - Perú.

    domingo, 29 de abril de 2012 15:31

Respuestas

  • Bueno amigo Leandro.... Esta vez creo que te hice pensar...

    pero EUREKA!!!... EUREKA!!!!... EUREKA!!!!

    ya está.

    El error está en el codigo del evento OnStart... aunque parece todo bien... no se que sucede...

    EL nuevo codigo es:

    Protected Overrides Sub OnStart(ByVal args() As String) Try

    EventLog1.Source = "ServicioSUMA" EventLog1.WriteEntry("Iniciando el servicio") myHost = New ServiceHost(GetType(WCFServicio.WCFSUmar)) myHost.Open() EventLog1.WriteEntry("Servicio iniciado") Catch ex As Exception EventLog1.WriteEntry("error:" & ex.Message) End Try End Sub


    He agregado un control EventLog1 para chequear que sucede... y he dejado de lado  la llamada asincrona al servicio.

    Ahora, si ejecuto el cliente desde fuera de VS todo funciona OK.

    Gracias y espero que este post les sirva a otros que se choquen con estos problemitas.


    EnterpriseSoft Perú Chachapoyas - Amazonas - Perú.

    • Marcado como respuesta Terricolaw lunes, 30 de abril de 2012 17:14
    lunes, 30 de abril de 2012 17:14

Todas las respuestas

  • Hola de nuevo...

    Decidido a no morir en este intento, Lei y lei... navegue y navegue..., y decidi reacer todo el proceso de alojamiento, asi que intente alojar el servicio ya no en un servicio de windows, sino utilizando una aplicacion de consola.

    Asi:

    Imports System.ServiceModel
    Imports WCFServicio
    Imports System.ServiceModel.Description
    
    Module Module1
    
        Sub Main()
    
            Console.WriteLine("Iniciando servicio")
            Dim oHost As ServiceHost
            oHost = New ServiceHost(GetType(WCFServicio.WCFSumar))
            oHost.Open()
            Console.WriteLine("Servicio iniciado")
            Console.ReadLine()
            oHost.Close()
    
        End Sub
    
    End Module

    OOhhhh... sorpresa.....

    Justo en laorden oHost.Open()

    obtengo el error:

    El servicio 'WCFServicio.WCFSumar' tiene cero extremos de aplicación (no infraestructura).

    Esto puede deberse a que no se encontró ningún archivo de configuración para la aplicación,
    a que no se encontró ningún elemento de servicio coincidente con el nombre del servicio en el archivo de configuración,
    o bien a que no se definió ningún extremo en el elemento de servicio.


    LO que indica, que en el proyecto anterios el servico de windows se inicia, pero no el servicio WCF alojado en el.

    ¿Como se podría solucionar este problema? Se que tiene que ver con el archivo app.config, pero no se que parte.

    Ayuda por favor...




    EnterpriseSoft Perú Chachapoyas - Amazonas - Perú.

    lunes, 30 de abril de 2012 15:14
  • Sigo peleando con este problema...  pero EUREKA..... EUREKA...

    El error:

    El servicio 'WCFServicio.WCFSumar' tiene cero extremos de aplicación (no infraestructura). 

    Ya se soluciono copiando el archivo app.Config del servicio WCF al proyecto de consola.

    Este error ocurre por que el proyecto de consola no tiene la informacion de la configuracion del servicio.

    PERO eso hice con mi aplicacion anterior cuando intente alojar el servicio WCF en el servicio Windows....

    Entonces, el servicio si se ha iniciado, unico que el cliente no puede tener acceso al servicio...

    Entonces: ¿Cual es el problema?


    EnterpriseSoft Perú Chachapoyas - Amazonas - Perú.


    • Editado Terricolaw lunes, 30 de abril de 2012 15:55
    lunes, 30 de abril de 2012 15:54
  • Bueno amigo Leandro.... Esta vez creo que te hice pensar...

    pero EUREKA!!!... EUREKA!!!!... EUREKA!!!!

    ya está.

    El error está en el codigo del evento OnStart... aunque parece todo bien... no se que sucede...

    EL nuevo codigo es:

    Protected Overrides Sub OnStart(ByVal args() As String) Try

    EventLog1.Source = "ServicioSUMA" EventLog1.WriteEntry("Iniciando el servicio") myHost = New ServiceHost(GetType(WCFServicio.WCFSUmar)) myHost.Open() EventLog1.WriteEntry("Servicio iniciado") Catch ex As Exception EventLog1.WriteEntry("error:" & ex.Message) End Try End Sub


    He agregado un control EventLog1 para chequear que sucede... y he dejado de lado  la llamada asincrona al servicio.

    Ahora, si ejecuto el cliente desde fuera de VS todo funciona OK.

    Gracias y espero que este post les sirva a otros que se choquen con estos problemitas.


    EnterpriseSoft Perú Chachapoyas - Amazonas - Perú.

    • Marcado como respuesta Terricolaw lunes, 30 de abril de 2012 17:14
    lunes, 30 de abril de 2012 17:14