Нераспознанный атрибут targetFramework.Обратите внимание, что имена атрибутов чувствительны к регистру - PullRequest
402 голосов
/ 23 сентября 2011

Я пытаюсь загрузить свой сайт и получаю следующее сообщение об ошибке:

Нераспознанный атрибут targetFramework. Обратите внимание, что имена атрибутов чувствительны к регистру.

<compilation debug="true" targetFramework="4.0">

Сайт отлично работает на моем локальном ПК, но не открывается, когда я загружаю его на свой хост и пытаюсь просмотреть в Интернете.

Ответы [ 28 ]

588 голосов
/ 23 сентября 2011

Обычно это происходит, когда у вас есть атрибут targetFramework="4.0" в файле web.config, но в пуле приложений настроен запуск ASP.NET 2.0.Атрибут targetFramework полностью не распознается ASP.NET 2.0, поэтому изменение его на 2.0 не даст желаемого эффекта.

Обратитесь в службу поддержки / к администратору и установите AppPool на 4.0.

Вы также можете полностью удалить атрибут, однако, если ваш сайт был закодирован с помощью 4.0 Framework, я уверен, что что-то еще вызовет ошибку.

80 голосов
/ 16 декабря 2011

Регистрация фреймворка в IIS - вот что у меня сработало:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -i
42 голосов
/ 20 июня 2014

откройте свой IIS (введите inetmgr в рабочем режиме) и измените настройку пула приложений. Чтобы увеличить изображение, щелкните изображение правой кнопкой мыши и откройте изображение в новой вкладке enter image description here

41 голосов
/ 09 мая 2015

В IIS

Щелкните пулы приложений

Щелкните правой кнопкой мыши DefaultAppPool --- >> Установить пул приложений по умолчанию ....--- >> Изменить версию .Net на V 4.0.

25 голосов
/ 21 января 2012

В меню Visual Studio:

Веб-сайт -> Параметры запуска -> вкладка сборки -> Выбрать целевой объект в раскрывающемся списке (.NET FrameWork 4)

12 голосов
/ 11 июля 2017

Я столкнулся с той же проблемой при публикации своих первых веб-сервисов. Я решил это, просто сделав это:

  1. Открыть IIS

  2. Нажмите на пулы приложений

  3. Щелкните правой кнопкой мыши DefaultAppPool => Установить пул приложений по умолчанию => Изменить версию .Net на V 4.0. (Вы также можете изменить .Net Framework Версия вашего приложения специально)

Надеюсь, это сработает.

8 голосов
/ 21 августа 2013

Мне пришлось зарегистрировать ASP.Net в IIS, чтобы разрешить его в Windows Server 2008 R2. Снимок экрана с командами ниже

cd /d C:\Windows\Microsoft.NET\Framework\v4.0.30319

iisreset /stop

aspnet_regiis -i

iisreset /start

%systemroot%\system32\inetsrv\appcmd set config /section:isapiCgiRestriction /[path='%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll'].allowed:True 

%systemroot%\system32\inetsrv\appcmd set config /section:isapiCgiRestriction /[path='%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll'].allowed:True 

enter image description here

8 голосов
/ 07 ноября 2017

для IIS 7 попробуйте в соответствии с приведенным рисунком ... отметьте меня, если это работает для вас.

enter image description here

5 голосов
/ 30 декабря 2012

Измените пул приложений на целевой фреймворк 4.0 вместо классического.

  1. RC сайт -> управлять сайтом-> расширенные настройки>
  2. первый вариант изменения с классического на интегрированный фреймворк 4.
4 голосов
/ 17 марта 2017

Я использую IIS Express, а не IIS.

Проблема была в файле applicationhost.config, расположенном в: {solution_folder} \. Vs \ config \ applicationhost.config.

Одна из записей пула приложений имела значение managedRuntimeVersion, равное "v2.0". Я изменил его на "v4.0", и он работал правильно.

Я уверен, что основной причиной был один из недавно установленных пакетов NuGet.

    <system.applicationHost>
       <applicationPools>
          <add name="BadAppPool1" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
       </applicationPools>
    </system.applicationHost>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...