Les services WCF hébergés sur IIS sur Windows 7 ou Windows Server 2008 R2 peuvent recevoir un message d’erreur d’exception après avoir installé une mise à jour pour .NET Framework 3.5 SP1 pour WCF

S’applique à
Windows Communication Foundation

Symptômes

Prenons le scénario suivant :

  • Votre ordinateur exécute Windows 7 ou Windows Server 2008 R2.
  • L’ordinateur exécute le service Windows Communication Foundation (WCF) et le service est hébergé sur Internet Information Services (IIS). Le service utilise le protocole HTTP ou HTTPS et utilise l’authentification Windows.
  • Vous installez des mises à jour Microsoft .NET Framework 3.0 Service Pack 2 ou .NET Framework 3.5 Service Pack 1 pour WCF. Par exemple, vous installez la mise à jour de sécurité 2756920.

Dans ce scénario, vous pouvez recevoir un message d’erreur d’exception semblable à ce qui suit sur la page demandée :

Remarque

Erreur du serveur dans l’application « /SecurtyTokenServiceApplication »
Méthode introuvable : 'System.String
System.ServiceModel.Ativation.iis7helper.extendedprotectiondotlessspnnotenabledthrowhelper(system.object)'

Par exemple, vous pouvez recevoir le message d’erreur lorsque vous accédez à un site web Microsoft SharePoint 2010. 

Lorsque ce problème se produit, vous pouvez également recevoir le message d’erreur suivant dans le journal des événements sur le serveur :

Remarque

WebHost n’a pas pu traiter une demande.
Informations sur l’expéditeur : System.ServiceModel.ServiceHostingEnvironment+HostingManager/17653682
Exception : System.ServiceModel.ServiceActivationException : le service '/SecurityTokenServiceApplication/securitytoken.svc' ne peut pas être activé en raison d’une exception pendant la compilation.
Le message d’exception est : Méthode introuvable : 'System.String System.ServiceModel.Activation.Iis7Helper.ExtendedProtectionDotlessSpnNotEnabledThrowHelper(System.Object)'. --->
System.MissingMethodException : méthode introuvable : 'System.String System.ServiceModel.Activation.Iis7Helper.ExtendedProtectionDotlessSpnNotEnabledThrowHelper(System.Object)'.
   sur System.ServiceModel.WasHosting.MetabaseSettingsIis7V2.WebConfigurationManagerWrapper.BuildExtendedProtectionPolicy(ExtendedProtectionTokenChecking tokenChecking, ExtendedProtectionFlags flags, List'1 spnList)
    sur System.ServiceModel.WasHosting.MetabaseSettingsIis7V2.WebConfigurationManagerWrapper.GetExtendedProtectionPolicy(Élément ConfigurationElement)
   sur System.ServiceModel.WasHosting.MetabaseSettingsIis7V2.ProcessWindowsAuthentication(String siteName, String virtualPath, HostedServiceTransportSettings& transportSettings)

Cause

Ce problème se produit parce que certains correctifs logiciels installés sur l’ordinateur ne contenaient que System.ServiceModel.dll et non System.ServiceModel.WasHosting.dll. Consultez la section « Plus d’informations » pour obtenir la liste des correctifs logiciels connus pour contenir uniquement ces fichiers.

En raison de ce problème, la mise à jour la plus récente ne peut pas installer la même version des deux fichiers. Cela expose une dépendance entre les deux fichiers. Cela provoque à son tour l’exception mentionnée précédemment. Ce problème se produit en raison d’un problème dans les correctifs logiciels publiés précédemment et n’est pas spécifiquement dû à la nouvelle mise à jour. La nouvelle mise à jour fait simplement apparaître le problème.

Résolution

        
        
        
Pour contourner ce problème, assurez-vous que les versions de System.ServiceModel.dll et System.ServiceModel.WasHosting.dll sont synchronisées.

Pour résoudre ce problème, installez update 2637518 ou tout correctif logiciel .NET Framework 3.0 SP2 qui contient les deux assemblys.

Nous vous recommandons d’installer update 2637518 pour résoudre ce problème. Toutefois, il est conçu uniquement pour corriger le problème décrit dans cet article. Appliquez ce correctif logiciel uniquement aux systèmes qui rencontrent ce problème spécifique.

Pour télécharger ce correctif logiciel à partir du Centre de téléchargement Microsoft, accédez à la page web du Centre de téléchargement Microsoft suivante :

http://go.microsoft.com/fwlink/?LinkID=242859 Remarque Si vous rencontrez déjà ce problème, installez update 2637518. Vous n’avez pas besoin de réinstaller la mise à jour à l’origine de ce problème.

Nécessité de redémarrer

Vous devrez peut-être redémarrer votre ordinateur après avoir appliqué cette mise à jour.

État

Microsoft a confirmé qu’il s’agissait d’un problème dans les produits Microsoft répertoriés dans la section « S’applique à ».

Informations supplémentaires

Les correctifs logiciels suivants peuvent provoquer ce problème s’ils sont installés sur un ordinateur exécutant Windows 7 ou Windows Server 2008 R2 RTM et si aucune nouvelle mise à jour .NET Framework 3.5 SP1 pour WCF n’est installée. Pour plus d’informations, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :

976462 Un correctif logiciel pour the.NET Framework 3.5 Service Pack 1 est disponible pour Windows 7 et pour Windows Server 2008 R2 comme prérequis pour Microsoft Office SharePoint Server 2010

977420 Un correctif cumulatif est disponible pour résoudre les problèmes dans Windows Communication Foundation dans .NET Framework 3.5 SP1 pour Windows 7 et pour Windows Server 2008 R2

982867 les services WCF hébergés par des ordinateurs avec un équilibrage de la charge réseau échouent dans .NET Framework 3.5 SP1 ou dans .NET Framework 4