none
NetTcpBinding no Windows Service RRS feed

  • Pergunta

  • Bom, estou com um problema muito estranho.

    Estou tentando hospedar um serviço WCF com o Binding NetTcpBinding em um serviço do Windows:

     

    Segui o seguinte tutorial:

    http://www.c-sharpcorner.com/uploadfile/dhananjaycoder/1701/

    E até baixei o projeto de exemplo.

    Bom a partir dai consigo criar o serviço com installUtil e consigo subir o serviço normalmente, porém quando eu tento colocar o endereço do meu serviço net.tcp:// no WcfTestClient ele dá problema e quando eu tento adicionar pelo service referece no meu projeto também dá problema falando que o host recusou a conexão.

     

    OBS: Meu Firewall está totalmente liberado e quando executo o comando netStat ele realmente fala que o endereço do meu serviço não subiu.

     

    Como posso resolver isso?

     

     

     

     

     

    sexta-feira, 6 de maio de 2011 13:59

Todas as Respostas

  • Oi Thiago....

    De mais detalhes do erro... qual mensagens exatamente aparece... qual o tipo de exception.... tem como mostrar o StackTrace ou ao menos a linha que aconteceu o erro...

    sexta-feira, 6 de maio de 2011 14:16
    Moderador
  • Tenho Sim Rui o Erro é esse:

     

    TCP error code 10061: No connection could be made because the target machine actively refused it. 

    sexta-feira, 6 de maio de 2011 15:26
  • Ah e o mais estranho é que no Host do Visual Studio funciona certinho e no IIS também só não funciona mesmo quando eu hospedo num serviço do Windows.
    sexta-feira, 6 de maio de 2011 15:31
  • Thiago de uma olhada nessa solução:

     

    http://www.israelaece.com/post/Configurando-o-limite-de-conexoes-pendentes.aspx

    Configurando o limite de conexões pendentes

    By Israel Aece24. março 2009 11:59

    Quando expomos um serviço através do binding NetTcpBinding, as requisições que chegam até ele, são processadas e, finalmente o retorno é enviado para o respectivo cliente. As mensagens que chegam são processadas no formato FIFO (first-in, first out), ou seja, elas aguardam o processamento em uma fila e, sob demanda, são encaminhadas para o processamento.

    Se a velocidade do processamento da mensagem é mais lenta que a velocidade de envio das mensagens, essa fila pode aumentar. Por padrão o binding NetTcpBinding limita, através da propriedade ListenBacklog, o número de requisições pendentes que podem ser enfileiradas. O valor padrão é 10 e, dependendo da quantidade de requisições que chegam para o serviço, esse limite pode exceder e, a seguinte exceção será disparada:

    System.ServiceModel.EndpointNotFoundException: Could not connect to net.tcp://localhost:8879/srv. The connection attempt lasted for a time span of 00:00:02.1404880. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:8879.  ---> System.Net.Sockets.SocketException:No connection could be made because the target machine actively refused it 127.0.0.1:8879

    A alternativa aqui é aumentar esse número, definindo um valor próximo a quantidade das conexões simultaneas que eventualmente podem chegar para o serviço. O exemplo abaixo ilustra a configuração desta propriedade nobinding NetTcpBinding:

    host.AddServiceEndpoint(typeof(IContrato), new NetTcpBinding() { ListenBacklog = 70 }, "srv");

    sexta-feira, 6 de maio de 2011 22:14
    Moderador
  • Rui,

    Então eu já tinha visto isso e já tinha alterado essa propriedade pois também pensei que poderia ser isso mas mesmo assim o problema continua.

    segunda-feira, 9 de maio de 2011 14:04
  • Boas Thiago,

    Compartilha aqui o seu código, configuração e a mensagem de erro que está tendo.
    http://www.israelaece.com
    segunda-feira, 9 de maio de 2011 14:47
    Moderador
  •  

    Olá Israel,

     

    Meu código é exatamente o que está no artigo, inclusive baixei esse projeto que teoricamente deveria funcionar mas não funciona.

    http://www.c-sharpcorner.com/uploadfile/dhananjaycoder/1701/

     

    E a mensagem de erro é essa:

    TCP error code 10061: No connection could be made because the target machine actively refused it. 

    OBS: Detalhe que só tenho esse problema quando hospedo num serviço do Windows em qualquer outra opção ele funciona normalmente.
    segunda-feira, 9 de maio de 2011 15:09
  • Boas Thiago,

    Posta aqui o código C# do seu Windows Service e o conteúdo do arquivo de configuração do mesmo.
    http://www.israelaece.com
    quarta-feira, 11 de maio de 2011 02:12
    Moderador