FIX: Smsvchost.exe per il servizio WCF si blocca quando si esegue un servizio WCF in.NET Framework 3.0 o 3.5 di.NET Framework

Sintomi

Si consideri lo scenario seguente:

  • Eseguire un servizio Windows Communication Foundation (WCF) basato su.NET Framework 3.5 o.NET Framework 3.0 di Microsoft.

  • Il servizio WCF utilizza il servizio (Smsvchost.exe) ed è ospitato in un computer che esegue Internet Information Services (IIS).

  • Una delle seguenti condizioni è vera:

    • L'utilizzo della CPU è elevato sul computer che esegue IIS.

    • Si verifica una limitazione di un modello di servizio per il servizio WCF.

    • Allo stesso tempo, più richieste vengono inviate al servizio WCF.

In questo scenario, il servizio WCF richiede più di un minuto per elaborare una richiesta da un'applicazione client. Inoltre, un messaggio di errore che assembla la seguente voce di evento viene registrato nel registro eventi:

Nome registro: sistema

Origine: SMSvcHost 3.0.0.0

Data:

ID evento: 8

Categoria di attività: Servizio di condivisione

Livello: errore

Parole chiave: classico

Utente: Servizio locale

Computer:

Descrizione: Errore durante l'invio di un socket duplicato: questo handle viene ora perso nel processo.

ID: 2620

Origine: System.ServiceModel.Activation.TcpWorkerProcess

Eccezione:

TimeoutException: L'operazione di richiesta inviato non ha ricevuto una risposta entro il timeout configurato (00: 01:00). L'assegnato a questa operazione è stata una parte di un timeout più lungo. È possibile perché il servizio è in corso l'elaborazione dell'operazione o il servizio non è riuscito a inviare un messaggio di risposta. È consigliabile aumentare il timeout dell'operazione (per il cast del canale/proxy su IContextChannel e impostando la proprietà OperationTimeout) e assicurarsi che il servizio è in grado di connettersi al client.

Nota: È necessario riavviare IIS per ripristinare il servizio WCF da questo problema.

Causa

Questo problema si verifica perché il processo di Smsvchost.exe scade dopo un minuto, quando tenta di trasferire una richiesta di connessione in ingresso al processo di lavoro W3wp.exe. Inoltre, questo valore di timeout è non configurabili.

Quando la CPU ha un carico di lavoro pesante oppure quando molte richieste di connessione in ingresso, il processo Smsvchost.exe non può trasferire la connessione in ingresso al processo di lavoro W3wp.exe entro un minuto. Pertanto, il processo di Smsvchost.exe va in timeout e infine si blocca. Quando si verifica questo problema, il processo Smsvchost.exe non può inviare le richieste successive al processo di lavoro W3wp.exe, è necessario riavviare IIS.

Risoluzione

Per risolvere questo problema, applicare l'hotfix 2504602 descritto nell'articolo della Microsoft Knowledge Base (KB).

Per ulteriori informazioni, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:

2504602 un pacchetto cumulativo di hotfix è disponibile per WCF in.NET Framework 3.0 SP2, in.NET Framework 3.5 SP1 e in.NET Framework 4

Stato

Microsoft ha confermato che questo è un problema dei prodotti Microsoft elencati nella sezione "Si applica a".

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×