Нераспознанный атрибут 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.