CORRECTIF : Une exception System.NotSupportedException est levée lorsque vous exécutez un IIS hébergé le service WCF qui utilise un certificat client pour l’authentification SSL

Symptômes

Considérez le scénario suivant :

  • Vous créez un service Windows Communication Foundation (WCF) qui est hébergé dans Internet Information Services (IIS).

  • Vous utilisez la classe WebScriptEnablingBehavior dans le service WCF.

  • Vous configurez le service WCF pour utiliser un certificat client pour l’authentification Secure Sockets Layer (SSL). Pour ce faire, vous définissez la propriété ClientCredentialType dans le fichier Web.config pour le certificat.

Dans ce scénario, lorsque vous exécutez le service WCF, une exception System.NotSupportedException est levée et que vous recevez un message d’erreur semblable au suivant :

Les paramètres SSL pour le service 'None' ne correspond pas à celles de l’IIS « Ssl, SslNegotiateCert, SslRequireCert, SslMapCert, Ssl128 ».

Cause

Ce problème se produit car certaines propriétés de l’instance de HttpTransportBindingElement ne sont pas copiées vers les points de terminaison proxy javascript de généré automatiquement.

Résolution

Un correctif pris en charge est désormais disponible auprès de Microsoft. Toutefois, il est conçu pour résoudre uniquement le problème décrit dans cet article. Il s’applique uniquement aux systèmes rencontrant ce problème spécifique.

Pour résoudre ce problème, contactez les Services de Support technique Microsoft pour obtenir le correctif. Pour obtenir une liste complète des numéros de téléphone des Services de Support technique Microsoft et des informations sur les coûts de support, visitez le site Web de Microsoft à l’adresse suivante :

http://support.microsoft.com/contactus/?ws=supportRemarque Dans des cas particuliers, des frais généralement encourus pour les appels au support technique peuvent être annulés si un technicien du support technique Microsoft détermine qu'une mise à jour spécifique peut résoudre votre problème. Les coûts habituels du support technique s’appliqueront aux autres questions et problèmes qui ne relèvent pas de la mise à jour spécifique en question.

Conditions préalables

Vous devez avoir le.NET Framework 3.5 Service Pack 1 (SP1) pour appliquer ce correctif.

Nécessite un redémarrage

Vous n’êtes pas obligé de redémarrer l’ordinateur après avoir installé le correctif.

Informations de remplacement du correctif

Ce correctif ne remplace aucun autre correctif.
La version anglaise de ce correctif dispose des attributs de fichier (ou version ultérieure) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont répertoriées en temps universel coordonné (UTC). Lorsque vous affichez les informations de fichier, elles sont converties en heure locale. Pour trouver la différence entre l’UTC et l’heure locale, utilisez l’onglet fuseau horaire dans l’élément de Date et heure dans le panneau de configuration.

version de base de x86 pour Windows Server 2000, Windows Server 2003 et Windows XP

Nom de fichier

Version de fichier

Taille du fichier

Date

Heure

Plateforme

System.servicemodel.web.dll

3.5.594.4152

569,344

22-Jul-2009

01:51

x86


version de base de x64 pour Windows Server 2000, Windows Server 2003 et Windows XP

Nom de fichier

Version de fichier

Taille du fichier

Date

Heure

Plateforme

System.servicemodel.web.dll

3.5.594.4152

491,520

22-Jul-2009

02:13

x64


Itanium et la version de Windows Server 2000, Windows Server 2003 et Windows XP

Nom de fichier

Version de fichier

Taille du fichier

Date

Heure

Plateforme

System.servicemodel.web.dll

3.5.594.4152

491,520

22-Jul-2009

02:26

IA-64


État

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

Solution de contournement

Pour contourner ce problème, hébergez vos propres au service WCF au lieu d’héberger le service dans IIS.

Plus d'informations

Informations de vidage de pile

System.ServiceModel.dll!System.ServiceModel.Channels.HttpsChannelListener.ApplyHostedContext(System.ServiceModel.Activation.VirtualPathExtension virtualPathExtension, bool isMetadataListener) + 0x1b7 bytes    

System.ServiceModel.dll!System.ServiceModel.Channels.HttpsTransportBindingElement.BuildChannelListener<System.__Canon>(System.ServiceModel.Channels.BindingContext context) + 0x69 bytes

System.ServiceModel.dll!System.ServiceModel.Channels.BindingContext.BuildInnerChannelListener<System.__Canon>() + 0x5f bytes

System.ServiceModel.dll!System.ServiceModel.Channels.MessageEncodingBindingElement.InternalBuildChannelListener<System.__Canon>(System.ServiceModel.Channels.BindingContext context) + 0x66 bytes

System.ServiceModel.Web.dll!System.ServiceModel.Channels.WebScriptMetadataMessageEncodingBindingElement.BuildChannelListener<System.__Canon>(System.ServiceModel.Channels.BindingContext context) + 0x4b bytes

System.ServiceModel.dll!System.ServiceModel.Channels.BindingContext.BuildInnerChannelListener<System.__Canon>() + 0x5f bytes

System.ServiceModel.dll!System.ServiceModel.Channels.Binding.BuildChannelListener<System.__Canon>(System.Uri listenUriBaseAddress, string listenUriRelativeAddress, System.ServiceModel.Description.ListenUriMode listenUriMode, System.ServiceModel.Channels.BindingParameterCollection parameters) + 0xa6 bytes

System.ServiceModel.dll!System.ServiceModel.Channels.Binding.BuildChannelListener<System.__Canon>(System.Uri listenUriBaseAddress, System.ServiceModel.Channels.BindingParameterCollection parameters) + 0x7c bytes

System.ServiceModel.Web.dll!System.ServiceModel.Description.WebScriptEnablingBehavior.AddMetadataEndpoint(System.ServiceModel.Description.ServiceEndpoint endpoint, System.ServiceModel.Dispatcher.EndpointDispatcher endpointDispatcher, bool debugMode) + 0x698 bytes

System.ServiceModel.Web.dll!System.ServiceModel.Description.WebScriptEnablingBehavior.ApplyDispatchBehavior(System.ServiceModel.Description.ServiceEndpoint endpoint, System.ServiceModel.Dispatcher.EndpointDispatcher endpointDispatcher) + 0x60 bytes

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×