Исправление: System.NotSupportedException исключения при выполнении IIS размещенной службы WCF, которая использует сертификат клиента для проверки подлинности SSL

Симптомы

Рассмотрим следующий сценарий:

  • Создание службы Windows Communication Foundation (WCF), который размещен в служб (IIS).

  • Класс WebScriptEnablingBehavior в службе WCF.

  • Конфигурация службы WCF использовать сертификат клиента для проверки подлинности Secure Sockets Layer (SSL). Для этого присвойте свойству ClientCredentialType в файле Web.config для сертификата.

В этом случае при запуске службы WCF, System.NotSupportedException исключение и сообщение об ошибке, подобное приведенному ниже:

Параметры SSL для службы «None» не совпадают с IIS «Ssl, SslNegotiateCert, SslRequireCert, SslMapCert, Ssl128».

Причина

Эта проблема возникает, так как некоторые свойства экземпляра HttpTransportBindingElement не копируются в конечные точки прокси автоматически сгенерированный javascript.

Решение

Исправление от корпорации Майкрософт доступно. Тем не менее оно предназначено только для устранения проблемы, указанной в данной статье. Предлагаемое исправление должно применяться исключительно в системах, в которых обнаружена эта специфическая неполадка.

Чтобы устранить эту проблему, обратитесь в службу поддержки пользователей Майкрософт для получения исправления. Полный список телефонов службы поддержки клиентов корпорации Майкрософт и сведения о стоимости поддержки посетите следующий веб-сайт корпорации Майкрософт:

http://support.microsoft.com/contactus/?ws=supportПримечание. В особых случаях оплата, предусмотренная за обращение в службу поддержки может быть отменена, если специалист службы технической поддержки Майкрософт определит, что обновление будет решением проблемы. Затраты на обычные услуги службы поддержки будут применяться к дополнительным вопросам и проблемам, которые не охватываются конкретным обновлением.

Предварительные условия

Для установки этого исправления необходимо иметь платформу .NET Framework 3.5 с пакетом обновления 1 (SP1).

Необходимость перезагрузки

После установки исправления перезагружать компьютер не требуется.

Сведения о замене исправлений

Это исправление не заменяет других исправлений.
Английская версия данного исправления содержит атрибуты файла (или более поздние атрибуты файлов), приведенные в следующей таблице. Дата и время для этих файлов указаны в формате общего скоординированного времени (UTC). При просмотре сведений о файле, он преобразуется в локальное время. Чтобы узнать разницу между временем по Гринвичу и местным временем, откройте вкладку Часовой пояс элемента Дата и время в панели управления.

версии x86 для Windows Server 2000, Windows Server 2003 и Windows XP

Имя файла

Версия файла

Размер файла

Дата

Время

Платформа

System.servicemodel.web.dll

3.5.594.4152

569,344

22-Jul-2009

01:51

x86


версии x64 для Windows Server 2000, Windows Server 2003 и Windows XP

Имя файла

Версия файла

Размер файла

Дата

Время

Платформа

System.servicemodel.web.dll

3.5.594.4152

491,520

22-Jul-2009

02:13

x64


На базе Itanium версии для Windows Server 2000, Windows Server 2003 и Windows XP

Имя файла

Версия файла

Размер файла

Дата

Время

Платформа

System.servicemodel.web.dll

3.5.594.4152

491,520

22-Jul-2009

02:26

IA-64


Статус

Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе "Относится к".

Временное решение

Чтобы обойти эту проблему, самостоятельного размещения службы WCF, а не размещение службы в IIS.

Дополнительные сведения

Данные дампа стека

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

Нужна дополнительная помощь?

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединение к программе предварительной оценки Майкрософт

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×