Службы WCF, размещенные в IIS в Windows 7 или Windows Server 2008 R2, могут получать сообщение об ошибке исключения после установки обновления для .NET Framework 3.5 SP1 для WCF

Применяется к
Windows Communication Foundation

Проблема

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

  • На компьютере установлена ОС Windows 7 или Windows Server 2008 R2.
  • На компьютере работает служба Windows Communication Foundation (WCF), а место службы размещено в службах IIS. Служба использует протокол HTTP или HTTPS и применяет проверку подлинности Windows.
  • Вы устанавливаете некоторые обновления Microsoft платформа .NET Framework 3.0 с пакетом обновления 2 (SP2) или .NET Framework 3.5 с пакетом обновления 1 (SP1) для WCF. Например, вы устанавливаете обновление безопасности 2756920.

В этом сценарии на запрашиваемой странице может появиться сообщение об ошибке исключения, похожее на следующее:

Примечание

Ошибка сервера в приложении /SecurtyTokenServiceApplication
Метод не найден: 'System.String
System.ServiceModel.Ativation.iis7helper.extendedprotectiondotlessspnnotenabledthrowhelper(system.object)'

Например, сообщение об ошибке может появиться при переходе на веб-сайт Microsoft SharePoint 2010. 

При возникновении этой проблемы в журнале событий на сервере также может появиться следующее сообщение об ошибке:

Примечание

WebHost не удалось обработать запрос.
Сведения об отправителе: System.ServiceModel.ServiceHostingEnvironment+HostingManager/17653682
Исключение. System.ServiceModel.ServiceActivationException: служба "/SecurityTokenServiceApplication/securitytoken.svc" не может быть активирована из-за исключения во время компиляции.
Сообщение об исключении: Метод не найден: 'System.String System.ServiceModel.Activation.Iis7Helper.ExtendedProtectionDotlessSpnNotEnabledThrowHelper(System.Object)'.. --->
System.MissingMethodException: метод не найден: 'System.String System.ServiceModel.Activation.Iis7Helper.ExtendedProtectionDotlessSpnNotEnabledThrowHelper(System.Object)'.
   в System.ServiceModel.WasHosting.MetabaseSettingsIis7V2.WebConfigurationManagerWrapper.BuildExtendedProtectionPolicy(ExtendedProtectionTokenChecking tokenChecking, ExtendedProtectionFlags flags, List'1 spnList)
    в System.ServiceModel.WasHosting.MetabaseSettingsIis7V2.WebConfigurationManagerWrapper.GetExtendedProtectionPolicy(элемент ConfigurationElement)
   в System.ServiceModel.WasHosting.MetabaseSettingsIis7V2.ProcessWindowsAuthentication(String siteName, String virtualPath, HostedServiceTransportSettings& transportSettings)

Причина

Эта проблема возникает из-за того, что на компьютере могут быть установлены исправления, содержащие только System.ServiceModel.dll и не содержащие System.ServiceModel.WasHosting.dll. В разделе «Дополнительные сведения» см. список исправлений, которые, как известно, содержат только эти файлы.

Из-за этой проблемы в последнем обновлении невозможно установить одну и ту же версию обоих файлов. Это выявит зависимость между двумя файлами. Это, в свою очередь, вызывает ранее упомянутое исключение. Эта проблема возникает из-за проблемы в ранее выпущенных исправлениях и не вызвана конкретно новым обновлением. Новое обновление просто вызывает проблему.

Решение

        
        
        
Чтобы обойти эту проблему, убедитесь, что версии System.ServiceModel.dll и System.ServiceModel.WasHosting.dll синхронизированы.

Чтобы решить эту проблему, установите обновление [2637518](/kb/2637518semblies.

Рекомендуем установить обновление [2637518](/kb/2637518o исправить только ту проблему, которая описана в этой статье. Примените это исправление только к системам, в которых возникает эта конкретная проблема.

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

http://go.microsoft.com/fwlink/?LinkID=242859 Примечание Если вы уже столкнулись с этой проблемой, установите обновление [2637518](/kb/2637518issue на Surface.

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

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

Состояние

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

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

Следующие исправления могут вызывать эту проблему, если они установлены на компьютере с Windows 7 или Windows Server 2008 R2 RTM и если не установлены новые обновления .NET Framework 3.5 с пакетом обновления 1 (SP1) для WCF. Чтобы просмотреть статьи в базе знаний Майкрософт, щелкните следующие номера статей:

976462 Исправление для the.NET Framework 3.5 с пакетом обновления 1 (SP1) доступно для Windows 7 и Windows Server 2008 R2 в качестве предварительного условия для Microsoft Office SharePoint Server 2010

977420 Доступен накопительный пакет исправлений для исправления проблем в Windows Communication Foundation в .NET Framework 3.5 SP1 для Windows 7 и Windows Server 2008 R2

982867 службы WCF, размещенные на компьютерах вместе с балансировкой сетевой нагрузки, не работают в платформа .NET Framework 3.5 с пакетом обновления 1 (SP1) или в платформа .NET Framework 4