netstat mostra porta aberta com pid para processo que não existe?

0

Temos um programa que escuta em uma porta para receber informações sobre a execução de um relatório. Ao fechar e reabrir o programa, recebemos um erro dizendo que a porta que ele usa já está em uso. Observando netstat , vemos que há 9 instâncias dessa porta no estado CLOSE_WAIT e 1 instância dela no estado de escuta. A instância que está no estado de escuta diz que pertence ao pid 488. O Gerenciador de Tarefas mostra que não há processo com esse ID e taskkill diz o mesmo. O aplicativo é um aplicativo .NET interno.

Este é um ambiente de produção, portanto, queremos evitar o reinício da máquina. O que pode causar isso e o que pode ser feito para corrigi-lo?

    
por Corey Ogburn 25.02.2013 / 19:14

1 resposta

0

CLOSE_WAIT significa que o soquete recebeu um pacote FIN da outra extremidade e está aguardando para ser fechado pelo aplicativo que possui o soquete de escuta. Não chamar close () em um soquete de escuta pode fazer com que ele flutue, como aconteceu com você.

Como é um aplicativo .NET interno, eu verificaria o seu código-fonte para garantir que o soquete está sendo fechado () corretamente antes de sair.

Mais informações sobre estados de soquete, incluindo CLOSE_WAIT: link

    
por 25.02.2013 / 21:00