CORRECTIF : Un service WCF basés sur.NET Framework 3.0 peut se bloquer et une exception System.ServiceModel.CommunicationException si le service utilise la liaison netTcpBinding

S’applique à : .NET Framework 3.5 Service Pack 1Windows Server 2008 R2 Service Pack 1

Symptômes


Vous exécutez un service basé sur le.NET Framework 3.0 de Windows Communication Foundation (WCF) qui utilise la liaison netTcpBinding de Microsoft. Lorsqu’une erreur de réseau se produit, le service se bloque en raison d’une exception System.ServiceModel.CommunicationException. L’exception peut se produire en raison du délai d’attente ou un problème de ressource réseau sous-jacent. La trace de la pile peut ressembler à l’exemple suivant :
.. .à System.ServiceModel.Channels.SecurityChannelListener'1.DuplexSessionReceiveMessageAndVerifySecurityAsyncResult.BeginTryReceiveItem (délai d’attente de TimeSpan, AsyncCallback rappel, état de l’objet) à () System.ServiceModel.Channels.SecurityChannelListener'1.ReceiveItemAndVerifySecurityAsyncResult'2.StartInnerReceive à () System.ServiceModel.Channels.SecurityChannelListener'1.ReceiveItemAndVerifySecurityAsyncResult'2.Start à System.ServiceModel.Channels.SecurityChannelListener'1.DuplexSessionReceiveMessageAndVerifySecurityAsyncResult.ReceiveMessage (état de l’objet) à () System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.WorkItem.Invoke2 à System.Security.SecurityContext.Run (SecurityContext securityContext, rappel de ContextCallback, état de l’objet) à () System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.WorkItem.Invoke à (De System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.ProcessCallbacks) à System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.CompletionCallback (état de l’objet)

Cause


Ce problème se produit car la méthode ReceiveMessage dans l’objet DuplexSessionReceiveMessageAndVerifySecurityAsyncResult n’intercepte pas les exceptions provoquées par l’erreur, et qu’ils sont transférés vers le thread de l’utilisateur.

Résolution


Informations sur le correctif logiciel

Un correctif pris en charge est disponible auprès de Microsoft. Toutefois, ce correctif vise à corriger uniquement le problème décrit dans cet article. Appliquez ce correctif uniquement aux systèmes qui rencontrent le problème décrit dans cet article. Ce correctif va peut-être subir des tests supplémentaires. Par conséquent, si vous n'êtes pas sérieusement concerné par ce problème, nous vous recommandons d'attendre la prochaine mise à jour logicielle qui contiendra ce correctif. Si le correctif est disponible pour le téléchargement, il existe une section « Téléchargement de correctif logiciel disponible » au début de cet article de la Base de connaissances. Si cette section n'apparaît pas, contactez le Service clientèle et Support de Microsoft pour obtenir le correctif. Remarque Si des problèmes supplémentaires se produisent ou si des procédures de dépannage sont nécessaires, vous devrez peut-être formuler une demande de service distincte. Les coûts habituels du support technique s'appliqueront aux questions et problèmes qui ne relèvent pas de ce correctif logiciel. Pour une liste complète des numéros de téléphone du service clientèle de Microsoft ou pour créer une demande de service distincte, visitez le site Web Microsoft suivant : Remarque Le formulaire « Téléchargement de correctif logiciel disponible » affiche les langues pour lesquelles le correctif est disponible. Si vous ne voyez pas votre langue, c'est parce qu'il n'y a pas de correctif disponible pour cette langue.

Conditions préalables

Vous devez disposer du Microsoft.NET Framework 3.5 Service Pack 1 (SP1) installé sur l’un des systèmes d’exploitation Windows suivants pour appliquer ce correctif :
  • Windows Vista Service Pack 2 (SP2)
  • Windows Server 2008 Service Pack 2 (SP2)
  • Windows 7 Service Pack 1 (SP1)
  • Windows Server 2008 R2 Service Pack 1 (SP1)
Pour plus d’informations sur la façon d’obtenir un service pack Windows Vista, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
935791 Comment obtenir le dernier Service Pack de Windows Vista
Pour plus d’informations sur la façon d’obtenir un service pack de Windows Server 2008, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
968849 Comment obtenir le dernier Service Pack pour Windows Server 2008
Pour plus d’informations sur la façon d’obtenir le Service Pack 1 pour Windows 7 ou Windows Server 2008 R2, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
976932 Informations sur le Service Pack 1 de Windows 7 et de Windows Server 2008 R2

Informations sur le redémarrage

Vous devrez peut-être redémarrer l’ordinateur après avoir appliqué ce correctif logiciel si tous les fichiers affectés sont utilisés. Nous vous conseillons de fermer toutes les applications.NET Framework avant d’appliquer ce correctif pour éviter d’avoir à redémarrer l’ordinateur.

Informations sur le remplacement

Ce correctif ne remplace pas un correctif précédemment publié.

Informations sur les fichiers

La version anglaise de ce correctif dispose des attributs de fichier (ou version ultérieure) répertoriés dans le tableau suivant. Les date et heure de création de ces fichiers sont exprimées en temps universel coordonné (UTC). Lorsque vous affichez les informations des fichiers, les données sont converties en heure locale. Pour connaître le décalage entre l’heure UTC et l’heure locale, utilisez l’onglet Fuseau horaire dans l’élément Date et heure du Panneau de configuration.
Pour toutes les versions prises en charge x86-Windows Vista SP2 et Windows Server 2008 SP2
Nom du fichierVersion du fichierTaille du fichierDateHeurePlateforme
Smdiagnostics.dll3.0.4506.5721110,59223-août-201110:57x86
Smsvchost.exe3.0.4506.5721128,84823-Aug-201110:57x86
System.identitymodel.dll3.0.4506.5721442,36823 -août-201110:57x86
System.runtime.serialization.dll3.0.4506.5721970,75223-août-201110:57x86
System.runtime.serialization.dll3.0.4506.5721970,75223-août-201110:57x86
System.servicemodel.dll3.0.4506.57215,992,44823-août-201110:57x86
System.servicemodel.washosting.dll3.0.4506.572132,76823-août-201110:57x86
System.servicemodel.dll3.0.4506.57215,992,44823-Aug-201110:57x86
Servicemodel.mofNe s’applique pas85,11328-Jul-201110:57Not Applicable
Servicemodel.mof.uninstallNot Applicable89612-Aug-201014:24Ne s’applique pas
Servicemonikersupport.dll3.0.4506.572117,25623-Aug-201110:57x86
System.identitymodel.dll3.0.4506.5721442,36823-août-201110:57x86
System.runtime.serialization.dll3.0.4506.5721970,75223-août-201110:57x86
System.servicemodel.dll3.0.4506.57215,992,44823-Aug-201110:57x86
Pour toutes les versions prises en charge x64-Windows Vista SP2 et Windows Server 2008 SP2
Nom du fichierVersion du fichierTaille du fichierDateHeurePlateforme
Servicemodel.mofNot Applicable85,11328-Jul-201110:55Ne s’applique pas
Servicemodel.mof.uninstallNot Applicable89612-Aug-201014:10Ne s’applique pas
Servicemonikersupport.dll3.0.4506.572119,30423-Aug-201110:55x64
Smdiagnostics.dll3.0.4506.572194,20823-août-201110:55x64
Smsvchost.exe3.0.4506.5721116,56023-Aug-201110:55x64
System.identitymodel.dll3.0.4506.5721401,40823 -août-201110:55x64
System.runtime.serialization.dll3.0.4506.5721847,87223-août-201110:55x64
System.runtime.serialization.dll3.0.4506.5721847,87223-août-201110:55x64
System.servicemodel.dll3.0.4506.57215,332,99223-août-201110:55x64
System.servicemodel.washosting.dll3.0.4506.572132,76823-août-201110:55x64
System.servicemodel.dll3.0.4506.57215,332,99223-Aug-201110:55x64
Pour toutes les versions basés sur IA-64 prises en charge de Windows Server 2008 SP2
Nom du fichierVersion du fichierTaille du fichierDateHeurePlateforme
Servicemodel.mofNot Applicable85,11328-Jul-201111:26Ne s’applique pas
Servicemodel.mof.uninstallNot Applicable89616-Aug-201014:36Ne s’applique pas
Servicemonikersupport.dll3.0.4506.572133,64023-Aug-201111:24IA-64
Smdiagnostics.dll3.0.4506.572194,20823-août-201111:24IA-64
Smsvchost.exe3.0.4506.5721116,56023-Aug-201111:24IA-64
System.identitymodel.dll3.0.4506.5721401,40823-Aug-201111:24IA-64
System.runtime.serialization.dll3.0.4506.5721847,87223-août-201111:24IA-64
System.runtime.serialization.dll3.0.4506.5721847,87223-Aug-201111:24IA-64
System.servicemodel.dll3.0.4506.57215,332,99223-Aug-201111:24IA-64
System.servicemodel.washosting.dll3.0.4506.572132,76823-août-201111:24IA-64
System.servicemodel.dll3.0.4506.57215,332,99223-Aug-201111:24IA-64
Pour toutes les versions basées sur les x86 de Windows 7 SP1
Nom du fichierVersion du fichierTaille du fichierDateHeurePlateforme
Smdiagnostics.dll3.0.4506.5721110,59222-Aug-201122:36x86
Smsvchost.exe3.0.4506.5721128,84822-Aug-201122:36x86
System.identitymodel.dll3.0.4506.5721442,36822-Aug-201122:36x86
System.runtime.serialization.dll3.0.4506.5721970,75222-Aug-201122:36x86
System.servicemodel.dll3.0.4506.57215,992,44822-Aug-201122:36x86
System.servicemodel.washosting.dll3.0.4506.572132,76822-Aug-201122:36x86
Servicemodel.mofNot Applicable85,11312-Nov-201023:36Not Applicable
Servicemodel.mof.uninstallNot Applicable89610-Jun-200921:14Not Applicable
Servicemonikersupport.dll3.0.4506.572117,25622-Aug-201122:36x86
System.identitymodel.dll3.0.4506.5721442,36822-Aug-201122:36x86
Pour toutes les versions basées sur les x64 de Windows 7 SP1 et Windows Server 2008 R2 SP1
Nom du fichierVersion du fichierTaille du fichierDateHeurePlateforme
Servicemodel.mofNot Applicable85,11312-Nov-201023:39Not Applicable
Servicemodel.mof.uninstallNot Applicable89610-Jun-200920:30Not Applicable
Servicemonikersupport.dll3.0.4506.572119,30422-Aug-201122:31x64
Smdiagnostics.dll3.0.4506.572194,20822-Aug-201122:31x64
Smsvchost.exe3.0.4506.5721116,56022-Aug-201122:31x64
System.identitymodel.dll3.0.4506.5721401,40822-Aug-201122:31x64
System.runtime.serialization.dll3.0.4506.5721847,87222-Aug-201122:31x64
System.servicemodel.dll3.0.4506.57215,332,99222-Aug-201122:31x64
System.servicemodel.washosting.dll3.0.4506.572132,76822-Aug-201122:31x64
Pour toutes les versions basés sur IA-64 prises en charge de Windows Server 2008 R2 SP1
Nom du fichierVersion du fichierTaille du fichierDateHeurePlateforme
Servicemodel.mofNot Applicable85,11312-Nov-201023:40Not Applicable
Servicemodel.mof.uninstallNot Applicable89610-Jun-200920:35Not Applicable
Servicemonikersupport.dll3.0.4506.572133,64022-Aug-201122:25IA-64
Smdiagnostics.dll3.0.4506.572194,20822-Aug-201122:25IA-64
Smsvchost.exe3.0.4506.5721116,56022-Aug-201122:25IA-64
System.identitymodel.dll3.0.4506.5721401,40822-Aug-201122:25IA-64
System.runtime.serialization.dll3.0.4506.5721847,87222-Aug-201122:25IA-64
System.servicemodel.dll3.0.4506.57215,332,99222-Aug-201122:25IA-64
System.servicemodel.washosting.dll3.0.4506.572132,76822-Aug-201122:25IA-64

Informations supplémentaires


Pour plus d'informations sur la terminologie de mise à jour logicielle, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
824684 Terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft