Attribut non reconnu «targetFramework». Notez que les noms d'attribut sont sensibles à la casse

416

J'essaie de charger mon site et j'obtiens ce message d'erreur:

Attribut non reconnu «targetFramework». Notez que les noms d'attribut sont sensibles à la casse.

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

Le site fonctionne bien sur mon PC local mais ne s'ouvre pas lorsque je l'ai chargé sur mon hôte et essayé de le visualiser en ligne.

Mike Nacci
la source
N'indique-t-il pas quel fichier contient cela ou où?
Jon Skeet
2
A-t-il été construit précédemment sur un framework pré 4.0? elegantcode.com/2009/11/10/…
Ta01
Ce problème peut être résolu par 4.0.3. Vous pouvez consulter l'article KB ici. @ moi et faites-moi savoir si cela résout votre problème, je peux essayer d'obtenir une question / réponse canonique pour cette erreur et fermer les dupes. Merci.
Lorsque j'essaie d'installer KB2599651 (téléchargement 64 bits) sur Win 7 x64, j'obtiens le message d'erreur qu'il "ne s'applique pas ou est bloqué par une autre condition sur votre ordinateur". J'ai la même erreur que OP, ai installé le framework 4.0 et l'ai enregistré avec IIS et l'ai choisi comme pool d'applications.
Tim
Avez-vous ouvert dans une version plus ancienne de Visual Studio que celle dans laquelle le projet a été développé? Ou a-t-il été développé dans Webmatrix puis ouvert dans un studio visuel plus ancien?
ruffrey

Réponses:

610

Cela se produit généralement lorsque vous avez un attribut de targetFramework="4.0"dans le web.config mais que le pool d'applications est défini pour exécuter ASP.NET 2.0. L' targetFrameworkattribut n'est pas entièrement reconnu par ASP.NET 2.0 - donc le changer en 2.0 n'aura pas l'effet souhaité.

Contactez le support / votre administrateur et faites passer l'AppPool à 4.0.

Vous pouvez également supprimer complètement l'attribut, mais si votre site a été codé avec le Framework 4.0, je suis sûr que quelque chose d'autre provoquera également une erreur.

vcsjones
la source
20
Merci, cela a résolu le problème, consultez ce lien pour un guide étape par étape pour que votre AppPool passe à 4.0: stackoverflow.com/questions/4890245/…
user1010572
merci @ le site vcsjones..my est maintenant opérationnel juste à cause de vous .. :)
Shiva Pareek
juste pour ajouter à la solution @vcsjones l'enregistrement .net 4.0 pourrait également être manqué. Vous pouvez effectuer l'enregistrement .net 4.0 en utilisant la procédure de ce lien , puis vous devez modifier le pool d'applications en 4.0.
Ram
4
Lorsque j'ai googlé le message d'erreur, j'ai trouvé cette page, avec cette belle question et même une plus belle réponse, que j'ai déjà votée il y a plusieurs mois.
Memet Olsen
81

L'enregistrement du cadre avec IIS est ce qui a fonctionné pour moi:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -i
kenik
la source
7
Cela marche! pour 64 bits est sous C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319
Jerry Liang
1
J'ai eu le même problème, mais les regiis ne l'ont pas résolu - j'ai dû supprimer et recréer l'arborescence du site Web entier et réaffecter le pool pour chaque application, et maintenant cela fonctionne ...
veljkoz
1
S'il s'agit d'une nouvelle version d'IIS (aucun autre site ne l'exécutant) ou si vous n'êtes pas inquiet de la rupture des sites hébergés avec un changement de framework, vous pouvez utiliser -i au lieu de -ir lors de l'inscription.
Ram
44

Dans IIS

Cliquez sur Pools d'applications

Cliquez avec le bouton droit sur DefaultAppPool --- >> Définir le pool d'applications par défaut ....--- >> Changer la version .Net en V 4.0.

Alexander Zaldostanov
la source
43

ouvrez votre IIS (tapez inetmgr lors de l'exécution) et modifiez le paramètre de votre pool d'applications. Pour afficher une grande image, cliquez avec le bouton droit sur l'image et ouvrez l'image dans un nouvel onglet. entrez la description de l'image ici

Ankit
la source
26

Dans le menu Visual Studio:

Site Web -> Options de démarrage -> onglet de construction -> Sélectionner le cadre cible dans la liste déroulante (.NET FrameWork 4)

elaiyaraja
la source
ou 4.5 dans mon cas :)
user230910
que faire si le serveur n'a que 2.0? faut-il installer 4.0 / 4.5 ??
Juran
@ user230910 Où est cette option?
DiegoS
Je ne peux pas m'en souvenir clairement mais je pense que cela fait référence à IIS
user230910
Fonctionné parfaitement pour moi MAI 2019 en utilisant l'application de formulaires Web Visual Studio 2019 sur AWS EC2 Windows Server 2019.
Doug Null
12

J'étais confronté au même problème lors de la publication de mes 1ers services Web. Je l'ai résolu simplement en faisant ceci:

  1. Ouvrir IIS

  2. Cliquez sur Pools d'applications

  3. Cliquez avec le bouton droit sur DefaultAppPool => Définir le pool d'applications par défaut => Changer la version .Net en V 4.0. (Vous pouvez également modifier spécifiquement la version .Net Framework de votre application)

J'espère que ça marchera.

Arsman Ahmad
la source
9

pour IIS 7 essayez selon l'image donnée ... marquez-moi utile si cela fonctionne pour vous.

entrez la description de l'image ici

gm arif
la source
8

J'ai dû enregistrer ASP.Net dans IIS pour le résoudre dans Windows Server 2008 R2. Capture d'écran des commandes ci-dessous

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 

entrez la description de l'image ici

LCJ
la source
5

Modifiez le pool d'applications pour cibler le framework 4.0 au lieu du classique.

  1. Site Web RC -> gérer le site Web-> paramètres avancés>
  2. la première option passe du classique au framework 4 intégré.
dev.Magdy
la source
5

J'utilise IIS Express, plutôt que IIS.

Le problème était dans le fichier applicationhost.config situé dans: {dossier_solution} \. Vs \ config \ applicationhost.config.

L'une des entrées du pool d'applications avait une valeur managedRuntimeVersion de "v2.0". Je l'ai changé en "v4.0", et cela a fonctionné correctement.

Je suis à peu près sûr que la cause principale était l'un des packages NuGet que j'avais installés récemment.

    <system.applicationHost>
       <applicationPools>
          <add name="BadAppPool1" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
       </applicationPools>
    </system.applicationHost>
NightShovel
la source
2
Nice- chaque poste mentionné IIS. J'utilisais IIS Express. Thx pour le correctif
PhillyNJ
4

Ouvrir le projet -> appuyez sur Maj + F4 (Ouvrir la page des propriétés) -> Choisissez Build -> dans Target Framework, choisissez .NET Framework 4 -> OK

Chưa biết
la source
3

Créez un nouveau pool en sélectionnant .Net Framework v4.0.3xxxxx

utiliser le mode Gérer le pipeline: intégré

Attribuez-le à votre site et c'est fait.

Ali Adravi
la source
2

Pour résoudre ce problème, cliquez simplement sur l'icône Version ASP.NET dans la section Outils du site du Panneau de configuration pour basculer le framework vers 4.0.

Sumanuski
la source
2

J'ai eu cette erreur à partir d'une compilation MSBuild ayant échoué , dans un fichier de projet converti d'une version antérieure de VS en VS2010 et .NET 4.0. Il s'agissait en fait d'un projet de déploiement Web, et la solution qui a fonctionné pour moi consistait à ajouter les entrées suivantes dans la section PropertyGroup au début du fichier MSBuild :

<ProductVersion>10.0.11107</ProductVersion>

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

Peut-être que ceux-ci sont automatiquement mis à jour lorsque d'autres types de projets sont convertis dans VS2010, mais ils manquaient dans mon fichier de projet de déploiement Web après sa conversion.

ergolargo
la source
2

Ce que j'ai fait: j'ai changé la valeur du pool d'applications en DefaultAppPool à partir d'une valeur précédente. Pour ce faire, dans les Paramètres avancés (Site Web -> Gérer le site Web -> Paramètres avancés>.

Eldon
la source
2

J'ai également rencontré le même problème lors de l'exécution locale de mon application, qui pointe vers .Net Framework 4.7.1. Le bogue était « Attribut non reconnu TargetFrameWork » comme indiqué ci-dessous. entrez la description de l'image ici

Mais aucune des réponses ci-dessus ne m'a aidé. Enfin quand j'ai changé mon port actuel numéro de (1413) en une autre valeur (60179), comme indiqué ci-dessous, cela a bien fonctionné pour moi, mais je ne suis pas sûr de la raison réelle derrière cela, mais cela a fonctionné.

entrez la description de l'image ici

Rinoy Ashokan
la source
Je vérifie simplement que j'ai eu cette erreur exacte et j'ai simplement essayé de changer le port comme indiqué dans cette réponse. J'exécute le client de test WCF pour démarrer ce service sur localhost. Après avoir changé le numéro de port, le service a pu démarrer. Merci pour votre suggestion.
Evan
Après avoir essayé toutes les suggestions, seule celle-ci a résolu mon problème. Merci beaucoup.
Prabo
Votre bienvenue @Prabo si possible, aidez-moi à voter UP
Rinoy Ashokan
Votre bienvenue @Evan si possible, aidez-moi à voter UP
Rinoy Ashokan
1

Je viens de l'avoir dans VS 2010.

Corrigé en modifiant le fichier .sln et en modifiant TargetFrameworkMoniker pour lui affecter la valeur ".NETFramework, Version% 3Dv4.0" .

Mat
la source
0

Si vous compilez les fichiers et que la valeur de "targetFramework" est définie comme étant une version particulière, à savoir 4.0,

Assurez-vous que l'hôte exécute le framework .net comme indiqué dans la même version.

Sinon, téléchargez le framework .net.

Après le téléchargement, s'il n'est pas automatiquement défini dans le gestionnaire IIS pour utiliser l'extension de la nouvelle version téléchargée du framework .net,

ajoutez l'extension manuellement en allant dans le dossier du framework .net récemment téléchargé via le gestionnaire IIS:

1.Cliquez avec le bouton droit sur le dossier du site Web

2. allez dans "Propriétés"

3. sous "répertoire virtuel", cliquez sur "configuration"

4. modifiez le chemin exécutable de l'extension ".aspx" (dont le chemin pointant vers une version autre que la version du framework .net récemment téléchargé) vers le chemin correct qui est le dossier de la version nouvellement téléchargée du framework .net puis sélectionnez le fichier "aspnet_isapi.dll".

5. cliquez sur ok!

Alimentation
la source
0

Retirez simplement le "Target Framework 4.0" et fermez le support.

Ça va marcher

Vignesh
la source
0

Suivez ces deux étapes:

Enregistrez la version 4.0 du framework .net (si elle n'est pas enregistrée)

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

  2. Dans le pool d'applications, changez le framework .net en v4.0

SharpCoder
la source
0

Si vous installez IIS après l'installation de .Net FrameWork. Vous devez réinstaller le framework .net pour IIS. Il nous suffit donc de courir aspnet_regiis -i. J'espère que c'est utile.

Joe.wang
la source
0

J'ai vu l'erreur "Attribut non reconnu 'targetFramework'" dans la page 'Sortie console' de Jenkins sur un serveur de build. C'était après avoir changé le «framework cible» pour plusieurs projets de «.NET Framework 3.5» en «.NET Framework 4» et validé mes modifications.

Dans Jenkins, les paramètres du projet ont dû être modifiés. Pour la solution, la «version MSBuild» a dû être changée de «v3.5» à «v4.0».

mathijsuitmegen
la source
0

Je viens d'avoir ce problème lors du déploiement d'une nouvelle application sur une ancienne boîte IIS. L'enquête a conduit à l'installation de la version v4.5.1, mais l'application nécessitant la v4.5.2

Rien à part l'installation de la version correcte d'ASP .Net au moment de l'exécution n'était requis.

Rob
la source
0

Il se peut que vous ayez votre propre fichier proj MSBUILD et que vous utilisiez la <AspNetCompiler>tâche. Dans ce cas, vous devez ajouter le ToolPathpour .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>
intrepidis
la source
0

Pour la superposition, modifiez simplement la version de targetFramework dans le fichier web.config uniquement, les autres choses ne doivent pas être modifiées.

Cheah Eng Teong
la source
0

les 2 étapes suivantes forceront l'actualisation du cache de Visual Studio et IIS Express et résoudront généralement mes problèmes similaires:

  1. Passez simplement du framework de projet de 4+ au framework .Net 3.5 et exécutez-le
  2. S'il s'est déroulé avec succès, vous pouvez le rétablir dans votre framework cible 4+ souhaité et voir qu'il fonctionnera probablement à nouveau.
Iman
la source
0

Changer le numéro de port pour le développement local m'a aidé Merci @Rinay Ashokan. J'ai fait tout le dépannage et j'ai finalement trouvé que les configurations de projet sont stockées dans IIS express pour le numéro de port. entrez la description de l'image ici

karthikn2411
la source
-1

Pour tous ceux qui n'ont pas IIS en cours d'exécution sur leur PC de développement, voici ce qui m'est arrivé: j'avais un site Web sur, écrasé avec des fichiers d'un site Web de diff qui était de 4 alors que le précédent était de 3,5. Vous avez cette erreur. Corrigé simplement en changeant le nom du répertoire du site Web, qui sur un PC dev peut être n'importe quoi, donc pas de problème. Les éléments ci-dessus sont probablement plus élégants, bien sûr, mais fonctionnent parfois simplement, SI vous pouvez vous en tirer, c'est-à-dire que vous êtes en dev plutôt qu'en QA ou Prod.

Paul
la source