Sintomas
Considere o seguinte cenário:
-
Execute um serviço Windows Communication Foundation (WCF) baseado em.NET Framework 3.0 ou 3.5 do.NET Framework da Microsoft.
-
O serviço WCF usa o serviço de compartilhamento de porta NET. TCP (Smsvchost.exe) e é hospedado em um computador que esteja executando o Internet Information Services (IIS).
-
Uma das seguintes condições for verdadeira:
-
O uso da CPU é alto no computador que está executando o IIS.
-
Ocorre um controle em um modelo de serviço para o serviço WCF.
-
Ao mesmo tempo, várias solicitações são enviadas para o serviço WCF.
-
Nesse cenário, o serviço WCF tem mais de um minuto para processar uma solicitação de um aplicativo cliente. Além disso, uma mensagem de erro que monta a seguinte entrada de evento é registrada no log de eventos:
Nome de logon: sistema
Fonte: SMSvcHost 3.0.0.0
Data:
Identificação do evento: 8
Categoria da tarefa: Serviço de compartilhamento
Nível: erro
Palavras-chave: clássico
Usuário: SERVIÇO LOCAL
Computador:
Descrição: Um erro ocorreu durante o envio de um soquete duplicado: agora, este identificador é vazado no processo.
IDENTIFICAÇÃO: 2620
Fonte: System.ServiceModel.Activation.TcpWorkerProcess
Exceção:
System. TimeoutException: Esta operação de solicitação enviada para não recebeu uma resposta no tempo limite configurado (00: 01:00). O tempo alocado para essa operação pode ter sido uma parte de um tempo limite maior. Isso pode ser porque o serviço ainda está processando a operação ou porque o serviço não pôde enviar uma mensagem de resposta. Considere aumentar o tempo limite da operação (por lançando o canal/proxy para IContextChannel e definindo a propriedade OperationTimeout) e certifique-se de que o serviço é capaz de se conectar ao cliente.
Observação: Você deve reiniciar o IIS para recuperar o serviço WCF contra esse problema.
Causa
Esse problema ocorre porque o processo de Smsvchost.exe expira após um minuto, quando tenta transferir uma solicitação de conexão de entrada para o processo de trabalho do W3wp.exe. Além disso, o tempo limite é não configurável.
Quando a CPU tem uma carga de trabalho pesada, ou quando muitas solicitações de conexão simultânea são recebidas, o processo de Smsvchost.exe não é possível transferir a conexão de entrada para o processo de trabalho do W3wp.exe em um minuto. Portanto, o processo de Smsvchost.exe o tempo limite e eventualmente para de responder. Quando esse problema ocorre, o processo de Smsvchost.exe não pode rotear solicitações posteriores ao processo de trabalho W3wp.exe até que o IIS seja reiniciado.
Resolução
Para resolver esse problema, aplique o hotfix 2504602 está descrito no artigo da Base de dados de Conhecimento da Microsoft (KB).
Para obter mais informações, clique no número de artigo a seguir para visualizar o artigo na Base de Dados de Conhecimento da Microsoft:
2504602 um pacote cumulativo de hotfix está disponível para o WCF no.NET Framework 3.0 SP2 no.NET Framework 3.5 SP1 e no.NET Framework 4
Status
A Microsoft confirma que este é um problema em seus produtos listados na seção "Aplica-se a".