Нерозпізнаний атрибут 'targetFramework'. Зауважте, що назви атрибутів залежать від регістру


416

Я намагаюся завантажити свій сайт, і я отримую це повідомлення про помилку:

Нерозпізнаний атрибут 'targetFramework'. Зауважте, що назви атрибутів залежать від регістру.

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

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


Чи не відображається, який файл містить це чи де?
Джон Скіт

2
Чи він був побудований раніше на платформі pre 4.0? elegantcode.com/2009/11/10/…
Ta01

Це питання може бути вирішено 4.0.3. Ви можете ознайомитись зі статтею KB тут. @ мені, і дайте мені знати, якщо це вирішить вашу проблему, я можу спробувати отримати канонічне запитання / відповідь на цю помилку і закрити обґрунтування. Дякую.

Коли я намагаюся встановити KB2599651 (64-розрядне завантаження) на Win 7 x64, я отримую повідомлення про помилку, що воно "не застосовується або заблоковано іншою умовою на вашому комп'ютері". У мене така ж помилка, що і в OP, встановлено Framework 4.0 і зареєстрував її в IIS і вибрав її як пул додатків.
Тім

Ви відкривали в старій версії візуальної студії, ніж проект, розроблений в? Або він був розроблений у Webmatrix, а потім відкритий у старшій візуальній студії?
ruffrey

Відповіді:


610

Зазвичай це відбувається, коли у вас є атрибут targetFramework="4.0"web.config, але пул додатків налаштований на запуск ASP.NET 2.0. ThetargetFrameworkАтрибут повністю невизнаний ASP.NET 2.0 - так змінити його на 2.0 не матиме бажаного ефекту.

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

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


20
Спасибі, це вирішило проблему, перевірте це посилання на крок за кроком керівництво , щоб ваш AppPool переключився на 4.0: stackoverflow.com/questions/4890245 / ...
user1010572

спасибі @ vcsjones..my веб-сайт працює і працює саме через тебе .. :)
Shiva Pareek

просто для додавання до рішення @vcsjones реєстрація .net 4.0 також може бути пропущена. Ви можете зробити реєстрацію .net 4.0, використовуючи процедуру за цим посиланням, і тоді вам потрібно змінити пул додатків на 4.0.
Рам

4
Коли я гуглив повідомлення про помилку, я знайшов цю сторінку, з цим прекрасним запитанням і ще красивішою відповіддю, на яку я звернувся з проханням місяці тому.
Memet Olsen

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.
Рам

43

відкрийте свій IIS (введіть inetmgr у виконанні) та змініть налаштування пулу додатків. Щоб переглянути велике це зображення, клацніть правою кнопкою миші зображення та відкрийте зображення на новій вкладці введіть тут опис зображення


43

У IIS

Клацніть на пулове програм

Клацніть правою кнопкою миші на DefaultAppPool --- >> Встановити пул програми за замовчуванням ....--- >> Змінити .Net Версію на V 4.0.


26

У меню Visual Studio:

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


або 4,5 в моєму випадку :)
user230910

що робити, якщо сервер має лише 2.0? Потрібно встановити 4.0 / 4.5 ??
Джуран

@ user230910 Де цей варіант?
Дієго

Я не можу чітко пам’ятати, але я думаю, що це стосується IIS
user230910

Мені ідеально
Doug Null

12

Під час публікації своїх перших веб-сервісів я зіткнувся з тим же питанням. Я вирішив це, просто зробивши це:

  1. Відкрити IIS

  2. Клацніть на пулове програм

  3. Клацніть правою кнопкою миші на DefaultAppPool => Встановити пул програми за замовчуванням => Змінити .Net Версію на V 4.0. (Ви також можете спеціально змінити .Net Framework Version своєї програми)

Сподіваюся, це спрацює.


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

Змініть пул додатків на цільовий Framework 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. Thx для виправлення
PhillyNJ

4

Open Project -> натисніть Shift + F4 (Відкрити сторінку властивостей) -> Виберіть Побудувати -> в Target Framework вибрав .NET Framework 4 -> OK


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

Що я зробив: я змінив значення Application Pool на DefaultAppPool з попереднього значення. Це ви робите в розширених налаштуваннях (Веб-сайт -> Керування веб-сайтом -> Розширені налаштування>.


2

Я також отримав те саме питання під час запуску своєї програми локально, яка вказує на .Net Framework 4.7.1. Помилка була " Нерозпізнаний атрибут TargetFrameWork ", як показано нижче. введіть тут опис зображення

Але жодна з наведених відповідей мені не допомогла. Нарешті, коли я змінив номер свого теперішнього порту (1413) на якесь інше значення (60179), як показано нижче, він справно працював для мене. Але я не впевнений у фактичній причині цього, але він спрацював.

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


Я просто перевіряю, що у мене була така точна помилка, і я спробував просто змінити порт, як зазначено в цій відповіді. Я запускаю тестовий клієнт WCF, щоб запустити цю послугу в localhost. Після зміни номера порту послугу вдалося запустити. Дякую за пропозицію
Еван

Спробувавши всі пропозиції, лише ця вирішила мою проблему. Дуже дякую.
Прабо

Ласкаво просимо @Prabo, якщо можливо, будь ласка, допоможіть мені проголосувати за UP
Ріной Ашокан,

Ласкаво просимо @Evan, якщо можливо, будь ласка, допоможіть мені проголосувати за UP
Ріной Ашокан

1

Щойно це було у VS 2010.

Виправлено шляхом редагування .sln файла та зміни TargetFrameworkMoniker, щоб йому було присвоєне значення ".NETFramework, версія% 3Dv4.0" .


0

Якщо ви компілюєте файли і значення "targetFramework" встановлено як конкретну версію, тобто 4.0,

Переконайтеся, що хост працює .net Framework, як зазначено в тій же версії.

Якщо ні, завантажте рамку .net.

Після завантаження, якщо не встановлено автоматичну установку в диспетчері IIS, слід використовувати розширення щойно завантаженої версії .net Framework,

додайте розширення вручну, перейшовши в папку нещодавно завантаженого .net рамки через менеджер IIS:

1. прямо натисніть папку веб-сайту

2.go до "Властивості"

3.для "віртуального каталогу" натисніть "конфігурація"

4.введіть виконуваний шлях розширення ".aspx" (з якого шлях вказується на іншу, ніж версію нещодавно завантаженої .net рамки) в правильний шлях, який є папкою НОВО завантаженої версії .net Framework а потім виберіть файл "aspnet_isapi.dll".

5. Клацніть нормально!



0

Виконайте ці два кроки:

Зареєструйте .net Framework версії 4.0 (якщо він не зареєстрований)

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

  2. У пулі додатків змініть рамку .net на v4.0


0

Якщо ви встановите IIS після встановлення .Net FrameWork. Вам потрібно встановити .net рамку знову для IIS. Отже, все, що нам потрібно зробити - це запустити aspnet_regiis -i. Сподіваюся, це корисно.


0

Побачила помилку "Нерозпізнаний атрибут" targetFramework "" на сторінці "Консольний вихід" Дженкінса на сервері збірки. Це було після того, як я змінив 'цільову основу' для декількох проектів з '.NET Framework 3.5' на '.NET Framework 4' і здійснив зміни.

У Дженкінсі налаштування проекту довелося змінити. Для рішення версію MSBuild потрібно було змінити з 'v3.5' на 'v4.0'.


0

Щойно у цій проблемі було розгортання нового додатка до старої коробки IIS Розслідування призвело до встановлення часу запуску v4.5.1, але додаток, що вимагає v4.5.2

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


0

Можливо, у вас є власний файл програми 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 для номера порту. введіть тут опис зображення


-1

Для тих, у кого це не працює IIS на своєму ПК для розробників, ось що зі мною трапилось: у мене був один веб-сайт, перезаписаний файлами з веб-сайту diff, який був 4, а попередній - 3,5. Отримала цю помилку Виправлено це просто шляхом зміни імені каталогів веб-сайту, який на комп'ютері розробників може бути будь-чим, так що ніяких проблем. Наведене вище, напевно, є більш елегантним, але іноді прості роботи, ЯКЩО ви можете піти з ним, тобто ви перебуваєте в розробниках, а не QA або Prod.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.