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

410

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

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

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

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

  • 0
    Разве это не показывает, какой файл содержит это или где?
  • 2
    Был ли он построен ранее на pre 4.0 framework? elegantcode.com/2009/11/10/...
Показать ещё 5 комментариев
Теги:

28 ответов

571

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

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

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

  • 19
    Спасибо, это решило проблему, проверьте эту ссылку для пошагового руководства, чтобы ваш AppPool переключился на 4.0: stackoverflow.com/questions/4890245/…
  • 0
    спасибо @ vcsjones..мой сайт запущен только из-за вас .. :)
Показать ещё 3 комментария
84

Регистрация структуры с помощью IIS - это то, что сработало для меня:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -i
  • 7
    Это работает! для 64-битной находится в C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319
  • 1
    У меня была та же проблема, но администрация не устранила ее - мне пришлось удалить и заново создать все дерево веб-сайтов и переназначить пул для каждого приложения, и теперь оно работает ...
Показать ещё 3 комментария
40

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

  • 0
    Это IIS 8.0?
38

В IIS

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

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

25

В меню Visual Studio:

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

  • 0
    или 4,5 в моем случае :)
  • 0
    что если на сервере есть только 2.0? Нужно ли устанавливать 4.0 / 4.5 ??
Показать ещё 2 комментария
10

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

  1. Откройте IIS

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

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

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

8

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

Изображение 5909

7

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

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 

Изображение 5910

5

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

  • Веб-сайт RC → управлять сайтом- > расширенные настройки >
  • первый вариант изменяется от классического к интегрированному фрейму 4.
4

Я использую 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>
  • 1
    Хороший - каждый пост упоминал IIS. Я использовал IIS Express. Спасибо за исправление
4

Открыть проект → нажмите Shift + F4 (Открыть страницу свойств) → Выберите Создать → в Целевая структура выбрал .NET Framework 4 → OK

3

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

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

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

2

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

2

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

<ProductVersion>10.0.11107</ProductVersion>

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

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

2

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

1

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

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

Изображение 5912

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

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

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

0

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

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

У меня была та же проблема, и я нашел этот хороший скрипт на Poweshell для обновления всех ваших пулов приложений одновременно: https://gallery.technet.microsoft.com/scriptcenter/How-to-set-the-IIS-9c295a20

Обязательно установите $IISAppPoolDotNetVersion = "v4.0" в верхней части.

0

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

0

Возможно, у вас есть собственный файл proxy 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

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

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

0

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

В Jenkins параметры проекта должны были быть изменены. Для решения "MSBuild Version" пришлось изменить с "v3.5" на "v4.0".

0

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

0

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

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

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

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

0

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

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

0

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

Убедитесь, что хост работает .net framework, как указано в той же версии.

Если нет, загрузите .net framework.

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

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

папка с папкой 1.right-click

2.go в "Свойства"

3. "виртуальный каталог", нажмите "Конфигурация"

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

5.click ok!

-2

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню