Веб-сайт в IIS настроен на использование пула приложений, который настроен на использование .NET Framework версии 4.0. Этот веб-сайт не может загрузить библиотеки DLL, скомпилированные для 4.0. Страницы на этом веб-сайте, на которых отображается версия платформы (System.Environment.Version) отчет 2.0 загружен.
Почему этот сайт загружает фреймворк 2.0? Как его можно настроить для загрузки фреймворка 4.0?
Пул приложений был переработан.
Другие веб-сайты в этом окне загружают и используют платформу 4.0.
По Microsoft:
"Версия .NET Framework, на которой работает приложение, определяется следующим образом:
«Если версия .NET Framework, для которой было создано приложение, присутствует на компьютере, приложение запускается на этой версии».
Был ли веб-сайт скомпилирован для .NET 2.0?
Чтобы проверить версию платформы и версию CLR, на которую нацелена цель, вы можете использовать служебную программу corflags.exe. Для папки bin, в которой расположены сборки, выполните следующую команду:
for %i in (*.exe,*.dll) do corflags.exe %i
Помимо прочего, он отобразит версию .NET Framework, на которую нацелена сборка. Обратите внимание, что вы также можете использовать corflags.exe для изменения PE-заголовка сборок для целевой версии .NET 4.0 CLR, но вам, вероятно, лучше перекомпилировать для .NET 4.0 в Visual Studio.
Практическое руководство. Использование файла конфигурации приложения для целевой версии .NET Framework
http://msdn.microsoft.com/en-us/library/9w519wzk.aspx
supportsRuntime Element в app.config
http://msdn.microsoft.com/en-us/library/w4atty68.aspx
https://stackoverflow.com/questions/2961600/app-config-supportedruntime
Информация о Corflags:
https://blogs.msdn.com/b/gauravseth/archive/2006/03/07/545104.aspx
http://msdn.microsoft.com/en-us/library/ms164699%28v=vs.80%29.aspx
Проще говоря, так не работает. Думайте об установке версии пула приложений как об установке среды по умолчанию если никто ничего не просит. Если 2 приложения находятся в пуле приложений, а 1 использует 2.0, а 1 использует 4.0, это зависит от того, кто будет вызван первым, в зависимости от версии платформы, которая работает в этом пуле приложений. Способ, которым администратор может «исправить» это (а вам, вероятно, не следует этого делать, поскольку приложение, скорее всего, было нацелено на 2.0), является установка поддерживаемого времени выполнения в файле application.config (его во время выполнения) см.Элемент <supportedRuntime>
Вы уже проверили <compilation>
директива под <system.web>
в web.config
?