Pergunta

Eu tenho uma aplicação web que é polling um serviço web em outro servidor. O servidor está localizado na mesma rede, e é referenciado por um IP interno, correndo na porta 8080.

A cada 15 segundos, um pedido é enviado para fora, que recebe uma resposta xml com informações do trabalho. 95% das vezes, isso funciona bem, porém em momentos aleatórios, o pedido para o servidor é nulo, e relata uma "resposta à força fechada pelo host remoto."

Pesquisando este problema, outros criaram KeepAlive = false. Isso não resolveu a questão. O servidor web está em execução .NET 3.5 SP1.

Uri serverPath = new Uri(_Url);

// create the request and set the login credentials
_Req = (HttpWebRequest)WebRequest.Create(serverPath);
_Req.KeepAlive = false;
_Req.Credentials = new NetworkCredential(username, password);
_Req.Method = this._Method;

Chamada para a resposta:

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
_ResponseStream = response.GetResponseStream();

O método para isso é GET. Tentei mudar o tempo limite, mas o padrão é grande o suficiente para levar isso em conta.

O outro pedido realizamos é um POST para postar dados para o servidor, e estamos recebendo o mesmo problema aleatoriamente bem. Não existem firewalls que afectam este, e nós descartou o antivírus. Todas as idéias para ajudar a resolver este é muito apreciada!

Foi útil?

Solução

Você está fechando o fluxo de resposta e eliminação da própria resposta? Essa é a causa mais frequente de "trava" com WebRequest - há um limite para quantas conexões você pode abrir para a mesma máquina ao mesmo tempo. O GC irá finalizar as ligações, eventualmente, mas se você descartá-los adequadamente, ele não é um problema.

Outras dicas

Eu não descartaria a problemas de rede como uma possível razão para os problemas. você tem executar um ping ao seu servidor para ver se você obter caiu pacotes que correspondem ao mesmo tempo como seus pedidos falhados?

Defina a propriedade tempo limite de FtpWebRequest objeto a máxima Eu tentei com 4 GB de arquivos e é ótimo trabalhar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top