CORRECTIF : Smsvchost.exe pour le service WCF cesse de répondre lorsque vous exécutez un service WCF dans.NET Framework 3.0 ou 3.5 du.NET Framework


Symptômes


Considérez le scénario suivant :
  • Vous exécutez un service de Windows Communication Foundation (WCF) basé sur le.NET Framework 3.5 ou.NET Framework 3.0 de Microsoft.
  • Le service WCF utilise le Service de partage de Port Net.Tcp (Smsvchost.exe) et est hébergé sur un ordinateur qui exécute Internet Information Services (IIS).
  • Une des conditions suivantes est remplie :
    • L’utilisation du processeur est élevée sur l’ordinateur qui exécute IIS.
    • Un accélérateur se produit dans un modèle de service pour le service WCF.
    • Plusieurs demandes sont envoyées au service WCF en même temps.
Dans ce scénario, le service WCF prend plu d’une minute pour traiter une requête à partir d’une application cliente. En outre, un message d’erreur qui assemble l’entrée d’événement suivant est enregistré dans le journal des événements :

Nom du journal : système

Source : SMSvcHost 3.0.0.0

Date :

L’ID d’événement : 8

Catégorie de la tâche : Service de partage

Niveau : erreur

Mots clés : classique

L’utilisateur : SERVICE LOCAL

Ordinateur :

Description : Une erreur est survenue lors de la distribution d’un socket dupliqué : ce handle est perdue dans le processus.

ID : 2620

Source : System.ServiceModel.Activation.TcpWorkerProcess

Exception :

System.TimeoutException : Cette opération de demande envoyée à n’a pas reçu de réponse dans le délai imparti configuré (00 : 01:00). Le temps alloué à cette opération peut avoir été une partie d’un délai plus long. Cela peut être parce que le service est toujours traitement de l’opération, ou parce que le service n’a pas pu envoyer un message de réponse. Veuillez vous pouvez augmenter le délai d’expiration de l’opération (par casting le canal/proxy vers IContextChannel et en définissant la propriété OperationTimeout) et vérifiez que le service est en mesure de se connecter au client.
Remarque Vous devez redémarrer IIS pour résoudre ce problème le service WCF.

Cause


Ce problème se produit car le processus de Smsvchost.exe expire après une minute lorsqu’il tente de transférer une demande de connexion entrante au processus de travail W3wp.exe. En outre, ce délai d’attente est non configurable.

Lorsque le processeur a une lourde charge de travail, ou lorsque de nombreuses demandes de connexion simultanées sont entrants, le processus Smsvchost.exe Impossible de transférer la connexion entrante vers le processus de travail W3wp.exe dans la minute. Par conséquent, le processus Smsvchost.exe arrive à expiration et finalement cesse de répondre. Lorsque ce problème se produit, le processus Smsvchost.exe ne peut pas acheminer les demandes ultérieures vers le processus de travail W3wp.exe jusqu’au redémarrage de IIS.

Résolution


Pour résoudre ce problème, appliquez le correctif 2504602 est décrite dans l’article de la Base de connaissances Microsoft (KB).

Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
2504602 un correctif cumulatif est disponible pour WCF dans.NET Framework 3.0 SP2, dans le.NET Framework 3.5 SP1 et.NET Framework 4

État


Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».