Služby WCF hostované ve službě IIS v systému Windows 7 nebo Windows Server 2008 R2 mohou po instalaci aktualizace pro rozhraní .NET Framework 3.5 SP1 pro WCF obdržet chybovou zprávu o výjimce

Platí pro
Windows Communication Foundation

Příznaky

Vezměte v úvahu následující scénář:

  • Na vašem počítači je systém Windows 7 nebo Windows Server 2008 R2.
  • V počítači běží služba WCF (Windows Communication Foundation) a hostitelem této služby je Internetová informační služba (IIS). Služba používá protokol HTTP nebo HTTPS a používá ověřování systému Windows.
  • Nainstalovali jste si aktualizace rozhraní Microsoft .NET Framework 3.0 Service Pack 2 nebo .NET Framework 3.5 Service Pack 1 pro WCF. Můžete si například nainstalovat aktualizaci zabezpečení 2756920.

V tomto scénáři se na požadované stránce může zobrazit chybová zpráva o výjimce, která se podobá následující:

Poznámka

Chyba serveru v aplikaci /SecurtyTokenServiceApplication
Metoda nebyla nalezena: System.String
System.ServiceModel.Ativation.iis7helper.extendedprotectiondotlessspnnotenabledthrowhelper(system.object)'

Tato chybová zpráva se může například zobrazit, když přejdete na web služby Microsoft SharePoint 2010. 

Dojde-li k těmto potížím, může se v protokolu událostí na serveru zobrazit také následující chybová zpráva:

Poznámka

WebHost nezpracoval požadavek.
Informace o odesílateli: System.ServiceModel.ServiceHostingEnvironment+HostingManager/17653682
Výjimka: System.ServiceModel.ServiceActivationException: Služba /SecurityTokenServiceApplication/securitytoken.svc nelze aktivovat kvůli výjimce během kompilace.
Zpráva o výjimce je: Metoda nebyla nalezena: System.String System.ServiceModel.Activation.Iis7Helper.ExtendedProtectionDotlessSpnNotEnabledThrowHelper(System.Object). --->
System.MissingMethodException: Metoda nebyla nalezena: 'System.String System.ServiceModel.Activation.Iis7Helper.ExtendedProtectionDotlessSpnNotEnabledThrowHelper(System.Object)'.
   at System.ServiceModel.WasHosting.MetabaseSettingsIis7V2.WebConfigurationManagerWrapper.BuildExtendedProtectionPolicy(ExtendedProtectionTokenChecking tokenChecking, ExtendedProtectionFlags flags, List'1 spnList)
    at System.ServiceModel.WasHosting.MetabaseSettingsIis7V2.WebConfigurationManagerWrapper.GetExtendedProtectionPolicy(ConfigurationElement element)
   at System.ServiceModel.WasHosting.MetabaseSettingsIis7V2.ProcessWindowsAuthentication(String siteName, String virtualPath, HostedServiceTransportSettings& transportSettings)

Příčina

K těmto potížím dochází, protože v počítači mohou být nainstalovány opravy hotfix, které obsahují pouze System.ServiceModel.dll a nikoli System.ServiceModel.WasHosting.dll. Seznam oprav hotfix, které obsahují pouze tyto soubory, naleznete v části "Další informace".

Kvůli tomuto problému nemůže novější aktualizace nainstalovat stejnou verzi obou souborů. Tím vznikne závislost mezi těmito dvěma soubory. To zase způsobuje výše zmíněnou výjimku. Tento problém nastává kvůli problému v dříve vydaných opravách hotfix a není konkrétně způsoben novou aktualizací. Nová aktualizace pouze způsobí, že problém vyjde na povrch.

Řešení

        
        
        
Pokud chcete tento problém vyřešit, ujistěte se, že jsou verze System.ServiceModel.dll a System.ServiceModel.WasHosting.dll synchronizované.

Chcete-li tento problém vyřešit, nainstalujte aktualizaci 2637518 nebo libovolnou opravu hotfix pro rozhraní .NET Framework 3.0 SP2, která obsahuje obě sestavy.

K vyřešení tohoto problému doporučujeme nainstalovat aktualizaci 2637518 . Tato oprava hotfix je však určena pouze k opravě problému popsaného v tomto článku. Tuto opravu hotfix použijte pouze v systémech, ve kterých dochází k tomuto konkrétnímu problému.

Chcete-li stáhnout tuto opravu hotfix z webu služby Stažení softwaru, přejděte na následující webovou stránku služby Stažení softwaru:

http://go.microsoft.com/fwlink/?LinkID=242859 Poznámka: Pokud již k tomuto problému dochází, nainstalujte aktualizaci 2637518. Aktualizaci, která tento problém způsobila, nemusíte znovu instalovat.

Požadavky na restartování

Po instalaci této aktualizace bude pravděpodobně nutné restartovat počítač.

Stav

Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.

Další informace

Následující opravy hotfix můžou způsobit tento problém, pokud jsou nainstalované v počítači se systémem Windows 7 nebo Windows Server 2008 R2 RTM a pokud nejsou nainstalované žádné nové aktualizace rozhraní .NET Framework 3.5 SP1 pro WCF. Další informace naleznete v následujících článcích znalostní báze znalostní báze Microsoft Knowledge Base:

976462 Oprava hotfix pro the.NET Framework 3.5 Service Pack 1 je k dispozici pro systém Windows 7 a Windows Server 2008 R2 jako předpoklad pro aplikaci systém Microsoft Office SharePoint Server 2010

977420 Je k dispozici kumulativní oprava hotfix k opravě problémů se službou Windows Communication Foundation v rozhraní .NET Framework 3.5 SP1 pro systémy Windows 7 a Windows Server 2008 R2

982867 služby WCF hostované na počítačích společně s vyrovnáváním zatížení sítě selžou v rozhraní .NET Framework 3.5 SP1 nebo .NET Framework 4