Симптомы
Рассмотрим следующий сценарий:
-
Создание службы 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