Ошибка конфигурации, связанная с targetFramework в web.config
Я сделал сайт MVC в Visual Studio 2015, и он работает на моем локальном хосте. Но когда я опубликовал свой веб-сайт и разместил на своем хосте, он не работает. Это дает мне это сообщение об ошибке:
Ошибка сервера в приложении '/'
Ошибка конфигурации
Сообщение об ошибке синтаксического анализа: атрибут targetFramework в элементе файла Web.config используется только для целевой версии 4.0 и более поздних версий.NET Framework (например, ''). Атрибут targetFramework в настоящее время ссылается на версию, более позднюю, чем установленная версия.NET Framework. Укажите допустимую целевую версию.NET Framework или установите требуемую версию.NET Framework.
Ошибка источника:
Произошла ошибка приложения на сервере. Текущие пользовательские настройки ошибок для этого приложения не позволяют просматривать информацию об ошибке приложения удаленно (по соображениям безопасности). Однако его могут просматривать браузеры, работающие на локальном сервере.
Исходный файл: G:\xxx\xxx.com\httpdocs\web.config Строка: 24
Информация о версии: Microsoft .NET Framework Версия:4.0.30319; ASP.NET версия:4.0.30319.34248
Связанные части в моем web.config:
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections>
И эта часть с ошибкой:
<system.web>
<authentication mode="None" />
<customErrors mode="Off" />
<compilation debug="true" targetFramework="4.6" />
<httpRuntime targetFramework="4.6" />
</system.web>
Свойства моего сайта:
И менеджер пакетов NuGet:
Свойства ссылки EntityFramework:
Основные настройки веб-сайта по умолчанию: (Если честно, я не уверен, должен ли я добавить новый веб-сайт (мой веб-сайт) здесь.)
Мои установленные рамки.net:
Мой метод публикации:
Я исследовал эту проблему в Интернете, и я нашел несколько ссылок, связанных с моей проблемой: проблема инфраструктуры Asp.net MCV4. В этой ссылке есть два основных предложения:
изменение этого тега компиляции
обновление пула приложений в IIS
На самом деле я пытался изменить этот тег, но он не меняется. Тогда я контролировал свой пул приложений, но он кажется современным.
Я позвонил своему хост-провайдеру и объяснил свою проблему. Они говорят, что эта ошибка не связана с их серверами.
Что я должен делать? Какое решение для этого?
8 ответов
Ваш проект веб-сайта ориентирован на v4.6.Net Framework, но ваш хостинг-провайдер еще не установил эту версию. Ваши варианты:
- Попросите поставщика установить его - они вряд ли это сделают.
- Найдите другого провайдера, который его поддерживает.
- Измените ваш проект на целевой v4.5.
@DavidG справедливо указал на все вещи. Просто с информационной точки зрения, если IIS является вашим провайдером, то установщик веб-платформы является лучшим выбором для проверки текущего состояния всего, что установлено на вашем компьютере в настоящее время. Посмотрите на снимок ниже -
Это действительно удобно, чтобы проверить, что все не хватает, и вы можете запустить установку всех недостающих частей в один клик.
Я изменился:
<system.web>
<compilation debug="true" targetFramework="4.7" />
<httpRuntime targetFramework="4.7" />
<customErrors mode="Off"/>
</system.web>
к
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<customErrors mode="Off"/>
</system.web>
т.е. изменено targetFramework
значение до 4,5 (поддерживаемое на сервере) с 4,7. и работал.
У меня просто была похожая проблема после установки (обновления Windows) KB 3205402.
Большая разница с моим делом: приложение работало хорошо до обновления!
==> Я обнаружил в "Диспетчере IIS", в "Ограничениях ISAPI и CGI", что платформа ASP.NET v4.0.30319 была переключена на "неавторизованный"!
Переключение на "Авторизованный" решило мою проблему
Была такая же проблема в строке ниже на автономном сервере,
<compilation targetFramework="4.5.2">
попытался добавить все роли и функции, связанные с.Net framework, из диспетчера серверов и в его пул,
но не сработало, у меня сработало просто загрузка Microsoft .NET Framework 4.5.2(автономный установщик)
Я попытался заменить targetFramework 4.5.2
к targetFramework 4.0
прямо в файле конфигурации. Тогда он и все функции работают правильно.
Перед:
<compilation targetFramework="4.5.2">
После:
<compilation targetFramework="4.0">
Я получил ту же ошибку, потому что мой пул приложений был настроен на .NET Framework 2.0.
Я ходил с этим сегодня без разрешения. Раздраженный, я наконец просто удалил свою рабочую копию с моего диска и перепроверил ее из SVN.
Исправлена.
Не очень умный ответ, но он исправил это для меня, понятия не имею, в чем была настоящая проблема.