REVISIÓN: Se produce una excepción System.NotSupportedException cuando ejecuta un servicio IIS aloja el servicio WCF que utiliza un certificado de cliente para la autenticación SSL

Se aplica a: .NET Framework 3.5 Service Pack 1

Síntomas


Imagine el siguiente escenario:
  • Crear un servicio de Windows Communication Foundation (WCF) que está alojado en los servicios de Internet Information Server (IIS).
  • Utilice la clase WebScriptEnablingBehavior en el servicio WCF.
  • Configurar el servicio WCF para usar un certificado de cliente para la autenticación de Secure Sockets Layer (SSL). Para ello, Establece la propiedad ClientCredentialType en el archivo Web.config para el certificado.
En este escenario, cuando se ejecuta el servicio WCF, se produce una excepción System.NotSupportedException y recibirá un mensaje de error es similar a la siguiente:
La configuración de SSL para el servicio 'Ninguno' no coinciden con los de los servicios de IIS 'Ssl, SslNegotiateCert, SslRequireCert, SslMapCert, Ssl128'.

Causa


Este problema se produce porque algunas propiedades de la instancia de HttpTransportBindingElement no se copian en los extremos de proxy de javascript generado automáticamente.

Solución


Ahora hay una revisión compatible de Microsoft. Sin embargo, se pretende corregir el problema que describe este artículo. Aplíquela sólo a sistemas que experimenten este problema específico.

Para resolver este problema, póngase en contacto con los servicios de soporte técnico de Microsoft para obtener la revisión. Para obtener una lista completa de números de teléfono de los servicios de soporte al cliente de Microsoft e información acerca de los costos de soporte técnico, visite el siguiente sitio Web de Microsoft:Nota: En casos especiales, los costos derivados normalmente de las llamadas al soporte técnico pueden cancelarse si un profesional de soporte técnico de Microsoft determina que una actualización específica resolverá el problema. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no guarden relación con la actualización en cuestión.

Requisitos previos

Debe tener el.NET Framework 3.5 Service Pack 1 (SP1) instalado para poder aplicar este hotfix.

Requisito de reinicio

No es necesario que reinicie el equipo después de instalar la revisión.

Información de reemplazo de revisión

Este hotfix no sustituye a otras revisiones.
La versión en inglés de esta revisión tiene los atributos de archivo (o atributos del archivo más reciente) mostrados en la tabla siguiente. Las fechas y horas de estos archivos se muestran en la hora Universal coordinada (UTC). Al ver la información del archivo, se convierte en hora local. Para encontrar la diferencia entre la hora UTC y la hora local, utilice la ficha Zona horaria en el elemento de Fecha y hora del Panel de control.
versión x86 para Windows Server 2000, Windows Server 2003 y Windows XP
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
System.servicemodel.web.dll3.5.594.4152569,34422-Jul-200901:51x86

versión x64 para Windows Server 2000, Windows Server 2003 y Windows XP
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
System.servicemodel.web.dll3.5.594.4152491,52022-Jul-200902:13x64

Versión basada en Itanium de Windows Server 2000, Windows Server 2003 y Windows XP
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
System.servicemodel.web.dll3.5.594.4152491,52022-Jul-200902:26IA-64

Estado


Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Solución alternativa


Para evitar este problema, alojadas en el servidor el servicio WCF en lugar de alojar el servicio en IIS.

Más información


Información de volcado de pila

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