Inquiridor
NetTcpBinding no Windows Service

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?
Todas as Respostas
-
-
-
-
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:59Quando 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"); -
-
Boas Thiago,
Compartilha aqui o seu código, configuração e a mensagem de erro que está tendo.
http://www.israelaece.com -
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. -
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