Симптоми
Да разгледаме следния сценарий. Можете да инсталирате .NET Framework 4.0. След това инсталирате по-ранна версия на .NET Framework, или разрешите .NET 3.0 WCF HTTP активиране. В този случай може да получите следното съобщение за грешка, когато при изпълнение на приложения, които се хоства в Internet Information Services (IIS):
Не може да зареди тип "System.ServiceModel.Activation.HttpModule" от блок "System.ServiceModel, версия = 3.0.0.0, култура = неутрален, PublicKeyToken = b77a5c561934e089".
Описание: Възникна необработено изключение по време на изпълнението на текущото уеб искане. Прегледайте проследяването на стека за повече информация относно грешката и къде е възникнала в кода.
Данни за изключението: System.TypeLoadException: не може да зареди тип "System.ServiceModel.Activation.HttpModule" от блок "System.ServiceModel, версия = 3.0.0.0, култура = неутрален, PublicKeyToken = b77a5c561934e089".
Причина
Този проблем възниква, защото във файла Applicationhost.config за Windows процеса на активиране на услугата (WAS) е определен раздел и този раздел е несъвместима с .NET Framework 4.0:
< Добавете име = "ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, версия = 3.0.0.0, култура = неутрален, PublicKeyToken = b77a5c561934e089" предпоставка = "managedHandler" / >
Този раздел трябва да се определят както следва:
< Добавете име = "ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, версия = 3.0.0.0, култура = неутрален, PublicKeyToken = b77a5c561934e089" предпоставка = "managedHandler, runtimeVersionv2.0" / >
Забележка Можете да намерите във файла Applicationhost.config в следното местоположение:
%windir%\system32\inetsrv\config
Решение
За да разрешите този проблем, изпълнете следните командния ред:
aspnet_regiis.exe /iru
Aspnet_regiis.exe файла могат да бъдат намерени в една от следните места:
%windir%\Microsoft.NET\Framework\v4.0.30319
%WINDIR%\Microsoft.NET\Framework64\v4.0.30319 (на компютър с 64-битова)