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


416

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

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

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

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


Разве это не показывает, какой файл содержит это или где?
— Джон Скит

2
Был ли он построен ранее на pre 4.0 framework? Elegantcode.com/2009/11/10/…
— Ta01

Эта проблема может быть решена с помощью 4.0.3. Вы можете проверить статью KB здесь. @ me и дайте мне знать, если это решит вашу проблему, я могу попытаться получить канонический вопрос / ответ для этой ошибки и закрыть дубликаты. Спасибо.

Когда я пытаюсь установить KB2599651 (64-разрядная загрузка) на Win 7 x64, я получаю сообщение об ошибке, что «оно не применяется или заблокировано другим условием на вашем компьютере». У меня та же ошибка, что и у OP, установлен фреймворк 4.0, я зарегистрировал его в IIS и выбрал в качестве пула приложений.
— Тим

Вы открывали в более старой версии визуальной студии, чем проект был разработан? Или он был разработан в Webmatrix, а затем открыт в более старой визуальной студии?
— Раффри

Ответы:


610

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

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

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


20
Спасибо, это решило проблему, перейдите по этой ссылке для пошагового руководства, чтобы ваш AppPool переключился на 4.0: stackoverflow.com/questions/4890245/…
— user1010572

спасибо @ vcsjones..мой веб-сайт теперь работает и работает только из-за вас .. :)
— Shiva Pareek

просто для добавления в решение @vcsjones регистрация .net 4.0 также может быть пропущена. Вы можете выполнить регистрацию .net 4.0, используя процедуру, приведенную в этой ссылке, а затем вам нужно изменить пул приложений до 4.0.
— Рам

4
Когда я погуглил сообщение об ошибке, я нашел эту страницу с этим прекрасным вопросом и даже более красивым ответом, за который я уже несколько месяцев назад голосовал.
— Мемет Олсен

81

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

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -i

7
Это работает! для 64-битной находится под C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319
— Джерри Лян

1
У меня была та же проблема, но администрация не устранила ее - мне пришлось удалить и заново создать все дерево веб-сайтов и переназначить пул для каждого приложения, и теперь это работает ...
— veljkoz

1
Если это свежая версия IIS (на ней не запущены другие сайты) или вы не беспокоитесь о том, что размещенные сайты ломаются из-за изменения структуры, вы можете использовать -i вместо -ir при регистрации.
— Рам

44

В IIS

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

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


43

откройте свой IIS (введите inetmgr при запуске) и измените настройку пула приложений. Чтобы просмотреть это изображение, щелкните его правой кнопкой мыши Изображение и откройте изображение на новой вкладке. введите описание изображения здесь


26

В меню Visual Studio:

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


или 4,5 в моем случае :)
— user230910

Что делать, если на сервере только 2.0? Нужно ли устанавливать 4.0 / 4.5 ??
— Джуран

@ user230910 Где этот вариант?
— DiegoS

Я не могу вспомнить ясно, но я думаю, что это относится к IIS
— user230910

Прекрасно работал для меня май 2019 года с использованием приложения веб-форм Visual Studio 2019 на AWS EC2 Windows Server 2019.
— Даг

12

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

  1. Откройте IIS

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

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

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


9

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

введите описание изображения здесь


8

Мне пришлось зарегистрировать 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 

введите описание изображения здесь


5

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

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

5

Я использую 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>

2
Хороший - каждый пост упоминал IIS. Я использовал IIS Express. Спасибо за исправление
— PhillyNJ

4

Открыть проект -> нажать Shift + F4 (открыть страницу свойств) -> Выбрать вариант сборки -> в Target Framework выбрать .NET Framework 4 -> ОК


3

Создайте новый пул, выбрав .Net Framework v4.0.3xxxxx

использовать режим управления конвейером: встроенный

Назначьте его на свой сайт и готово.


2

Чтобы устранить эту проблему, просто щелкните значок «Версия ASP.NET» в разделе «Инструменты сайта» панели управления, чтобы переключить платформу на 4.0.


2

Я получил эту ошибку из-за неудачной компиляции MSBuild в файле проекта, преобразованном из более ранней версии VS в VS2010 и .NET 4.0. На самом деле это был проект веб-развертывания, и решение, которое работало для меня, заключалось в добавлении следующих записей в раздел PropertyGroup в начале файла MSBuild :

<ProductVersion>10.0.11107</ProductVersion>

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

Возможно, они автоматически обновляются при преобразовании других типов проектов в VS2010, но их не было в моем файле проекта Web Deployment после его преобразования.


2

Что я сделал: я изменил значение пула приложений на DefaultAppPool с предыдущего значения. Это делается в разделе «Дополнительные настройки» («Веб-сайт» -> «Управление веб-сайтом» -> «Дополнительные настройки»).


2

У меня также возникла такая же проблема при локальном запуске приложения, которое указывает на .Net Framework 4.7.1. Ошибка была « Нераспознанный атрибут TargetFrameWork », как показано ниже. введите описание изображения здесь

Но ни один из приведенных ответов не помог мне. Наконец, когда я изменил свой текущий номер порта (1413) на какое-то другое значение (60179), как показано ниже, оно работало нормально для меня. Но я не уверен по фактической причине, но это сработало.

введите описание изображения здесь


Я просто проверяю, что у меня была именно эта ошибка, и я попытался просто изменить порт, как указано в этом ответе. Я запускаю тестовый клиент WCF, чтобы запустить этот сервис на локальном хосте. После изменения номера порта служба смогла запуститься. Благодарим за ваше предложение.
— Эван

Перепробовав все предложения, только этот решил мою проблему. Огромное спасибо.
— Прабо

Добро пожаловать @Prabo, если возможно, пожалуйста, помогите мне с голосованием UP
— Риной Ашокан

Добро пожаловать @Evan, если возможно, пожалуйста, помогите мне с голосованием UP
— Риной Ашокан

1

Просто было это в VS 2010.

Исправлено путем редактирования файла .sln и изменения TargetFrameworkMoniker, чтобы ему было присвоено значение «.NETFramework, Version% 3Dv4.0» .


0

Если вы компилируете файлы и значение «targetFramework» устанавливается как конкретная версия, то есть 4.0,

Убедитесь, что на хосте запущена платформа .net, как и в той же версии.

Если нет, скачайте .net framework.

После загрузки, если в диспетчере IIS не настроено автоматическое использование расширения только что загруженной версии .net framework,

добавьте расширение вручную, перейдя в папку недавно загруженного .net framework через диспетчер IIS:

1. щелкните правой кнопкой мыши папку веб-сайта

2. Перейти в «Свойства»

3. В разделе «Виртуальный каталог» нажмите «Конфигурация».

4. Отредактируйте путь к исполняемому файлу расширения «.aspx» (путь которого указывает на версию, отличную от версии недавно загруженной платформы .net), на правильный путь, который является папкой НОВОЙ загруженной версии платформы .net. и затем выберите файл "aspnet_isapi.dll".

5. нажмите ОК!


0

Просто удалите «Target Framework 4.0» и закройте скобку.

Это будет работать


0

Выполните следующие два шага:

Зарегистрируйте .NET Framework версии 4.0 (если он не зарегистрирован).

  1. C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319> aspnet_regiis -i

  2. В пуле приложений измените .net framework на v4.0


0

Если вы устанавливаете IIS после установки .Net FrameWork. Вам нужно снова установить .net Framework для IIS. Так что все, что нам нужно сделать, это бежать aspnet_regiis -i. Надеюсь, это полезно.


0

Увидел ошибку «Нераспознанный атрибут targetFramework» на странице «Вывод на консоль» Jenkins на сервере сборки. Это было после того, как я изменил «целевой фреймворк» для нескольких проектов с «.NET Framework 3.5» на «.NET Framework 4» и зафиксировал свои изменения.

В Jenkins настройки проекта пришлось изменить. Для решения «Версия MSBuild» пришлось изменить с «v3.5» на «v4.0».


0

Только что возникла эта проблема при развертывании нового приложения на старой коробке IIS. Расследование привело к установке v4.5.1 во время выполнения, но приложение, требующее v4.5.2

Ничего кроме установки правильной версии ASP .Net во время выполнения не потребовалось.


0

Возможно, у вас есть собственный proj-файл MSBUILD и вы используете <AspNetCompiler>задачу. В этом случае вы должны добавить ToolPathдля .NET4.

<AspNetCompiler
    VirtualPath="/MyFacade"
    PhysicalPath="$(MSBuildProjectDirectory)\MyFacade\"
    TargetPath="$(MSBuildProjectDirectory)\Release\MyFacade"
    Updateable="true"
    Force="true"
    Debug="false"
    Clean="true"
    ToolPath="C:\Windows\Microsoft.NET\Framework\v4.0.30319\">      
</AspNetCompiler>

0

Для наложения просто измените версию targetFramework только в файле web.config, остальные вещи не нужно менять.



0

следующие 2 шага заставят обновить кэш Visual Studio и IIS Express и, как правило, разрешат мои похожие проблемы:

  1. Просто переключите Project Framework с 4+ на .Net Framework 3.5 и запустите его.
  2. Если он запустился успешно, вы можете вернуть его обратно к желаемой целевой структуре 4+ и увидеть, что он, вероятно, снова заработает.

0

Мне помогла смена номера порта для местного развития. Спасибо @Rinay Ashokan. Я выполнил всю работу по устранению неисправностей и, наконец, обнаружил, что конфигурации проекта хранятся в IIS Express для номера порта. введите описание изображения здесь


-1

Для тех, у кого есть это, у которых IIS не запущен на их ПК разработчика, вот что случилось со мной: у меня был один веб-сайт, перезаписанный файлами с сайта diff, который был 4, а предыдущий был 3.5. Получил эту ошибку. Исправить это просто, изменив имя каталога веб-сайта, которое на ПК разработчика может быть чем угодно, так что никаких проблем. Вышеприведенное, вероятно, более элегантно, но иногда работает просто, ЕСЛИ вам это сойдет с рук, то есть вы в dev, а не в QA или Prod.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.