Attributo non riconosciuto 'targetFramework'. Si noti che i nomi degli attributi fanno distinzione tra maiuscole e minuscole


416

Sto cercando di caricare il mio sito e ricevo questo messaggio di errore:

Attributo non riconosciuto 'targetFramework'. Si noti che i nomi degli attributi fanno distinzione tra maiuscole e minuscole.

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

Il sito funziona bene sul mio PC locale ma non si apre quando l'ho caricato sul mio host e ho provato a visualizzarlo online.


Non mostra quale file lo contiene o dove?
Jon Skeet,

2
È stato costruito in precedenza su un framework pre 4.0? elegantcode.com/2009/11/10/…
Ta01

Questo problema può essere risolto dalla 4.0.3. Puoi consultare l'articolo KB qui. @ me e fammi sapere se questo risolve il problema, potrei provare a ottenere una domanda / risposta canonica per questo errore e chiudere i duplicati. Grazie.

Quando provo a installare KB2599651 (download a 64 bit) su Win 7 x64, viene visualizzato il messaggio di errore "Non si applica o è bloccato da un'altra condizione sul computer". Ho lo stesso errore di OP, ho installato Framework 4.0 e l'ho registrato con IIS e l'ho scelto come Pool di applicazioni.
Tim

Hai aperto in una versione precedente di Visual Studio rispetto a quella in cui è stato sviluppato il progetto? O è stato sviluppato in Webmatrix e poi aperto in un vecchio studio visivo?
ruffrey,

Risposte:


610

Ciò si verifica in genere quando si dispone di un attributo di targetFramework="4.0"in web.config ma il pool di app è impostato per eseguire ASP.NET 2.0. L' targetFrameworkattributo non è completamente riconosciuto da ASP.NET 2.0, quindi cambiarlo in 2.0 non avrà l'effetto desiderato.

Contattare l'assistenza / l'amministratore e impostare AppPool su 4.0.

Puoi anche rimuovere completamente l'attributo, tuttavia se il tuo sito è stato codificato con il Framework 4.0, allora sono sicuro che anche qualcos'altro causerà un errore.


20
Grazie, questo risolto il problema, controllare questo link per una guida passo passo per avere il vostro AppPool passa alla 4.0: stackoverflow.com/questions/4890245/...
user1010572

grazie @ vcsjones..my sito web è ora attivo e funzionante solo grazie a te .. :)
Shiva Pareek,

solo per aggiungere alla soluzione @vcsjones la registrazione di .net 4.0 potrebbe anche mancare. È possibile eseguire la registrazione .net 4.0 utilizzando la procedura in questo collegamento e quindi è necessario eseguire il chagne del pool di applicazioni in 4.0.
Ram

4
Quando ho cercato su Google il messaggio di errore, ho trovato questa pagina, con questa bella domanda e anche una risposta più bella, che ho purtroppo votato mesi fa.
Memet Olsen,

81

La registrazione del framework con IIS è ciò che ha funzionato per me:

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

7
Questo funziona! per 64 bit è in C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319
Jerry Liang,

1
Ho avuto lo stesso problema, ma i regiis non l'hanno risolto: ho dovuto rilasciare e ricreare l'intero albero del sito Web e riassegnare il pool per ogni app, e ora funziona ...
veljkoz

1
Se questa è una nuova versione di IIS (nessun altro sito in esecuzione) o non sei preoccupato che i siti ospitati si rompano con una modifica del framework, puoi usare -i invece di -ir durante la registrazione.
Ram

44

In IIS

Fai clic su Pool di applicazioni

Fare clic con il tasto destro su DefaultAppPool --- >> Imposta predefinito pool di applicazioni ....--- >> Cambia la versione .Net su V 4.0.


43

apri IIS (digita inetmgr in esecuzione) e modifica le impostazioni del pool di applicazioni, per visualizzare questa immagine ingrandita con il tasto destro del mouse sull'immagine e aprire l'immagine in una nuova scheda inserisci qui la descrizione dell'immagine


26

Nel menu di Visual Studio:

Sito Web -> Opzioni di avvio -> scheda build -> Seleziona Target Framework nella casella a discesa (.NET FrameWork 4)


o 4.5 nel mio caso :)
user230910

cosa succede se il server ha solo 2.0? dovrebbe essere necessario installare 4.0 / 4.5 ??
Juran,

@ user230910 Dov'è quell'opzione?
DiegoS,

Non riesco a ricordare chiaramente, ma penso che questo si riferisca a IIS
user230910

Ha funzionato perfettamente per me MAGGIO 2019 utilizzando l'app Web Form di Visual Studio 2019 su AWS EC2 Windows Server 2019.
Doug Null

12

Stavo affrontando lo stesso problema durante la pubblicazione dei miei primi servizi web. L'ho risolto semplicemente facendo questo:

  1. Apri IIS

  2. Fai clic su Pool di applicazioni

  3. Fare clic con il tasto destro su DefaultAppPool => Imposta default pool di applicazioni => Cambia versione .Net su V 4.0. (Puoi anche modificare la versione .Net Framework della tua applicazione in modo specifico)

Spero, funzionerà.


9

per IIS 7 prova in base all'immagine fornita ... contrassegnami come utile se funziona per te.

inserisci qui la descrizione dell'immagine


8

Ho dovuto registrare ASP.Net in IIS per risolverlo in Windows Server 2008 R2. Sreenshot dei comandi indicati di seguito

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 

inserisci qui la descrizione dell'immagine


5

Modificare il pool di applicazioni in Framework 4.0 di destinazione anziché in classico.

  1. Sito Web RC -> gestisci sito Web-> impostazioni avanzate>
  2. la prima opzione cambia dal classico al framework 4 integrato.

5

Sto usando IIS Express, piuttosto che IIS.

Il problema era nel file applicationhost.config che si trova in: {solution_folder} \. Vs \ config \ applicationhost.config.

Una delle voci del pool di applicazioni aveva un valore managedRuntimeVersion di "v2.0". L'ho cambiato in "v4.0" e ha funzionato correttamente.

Sono abbastanza sicuro che la causa principale sia stata uno dei pacchetti NuGet che avevo installato di recente.

    <system.applicationHost>
       <applicationPools>
          <add name="BadAppPool1" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
       </applicationPools>
    </system.applicationHost>

2
Bello, ogni singolo post menzionato IIS. Stavo usando IIS Express. Grazie per la correzione
PhillyNJ,

4

Apri progetto -> premete Shift + F4 (Open pagina delle proprietà) -> Scegli Costruire -> nel framework di destinazione scelto .NET Framework 4 -> OK


3

Creare un nuovo pool selezionando .Net Framework v4.0.3xxxxx

utilizzare la modalità di gestione della pipeline: integrata

Assegnalo al tuo sito e fatto.


2

Per risolvere questo problema, fare semplicemente clic sull'icona Versione ASP.NET nella sezione Strumenti sito del Pannello di controllo per passare al framework 4.0.


2

Ho avuto questo errore da una compilazione MSBuild non riuscita , in un file di progetto convertito da una versione precedente di VS in VS2010 e .NET 4.0. In realtà era un progetto di distribuzione Web e la soluzione che funzionava per me era l'aggiunta delle seguenti voci nella sezione PropertyGroup all'inizio del file MSBuild :

<ProductVersion>10.0.11107</ProductVersion>

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

Forse questi vengono aggiornati automaticamente quando altri tipi di progetto vengono convertiti in VS2010, ma mancavano dal mio file di progetto di distribuzione Web dopo la conversione.


2

Cosa ho fatto: ho modificato il valore del pool di applicazioni in DefaultAppPool rispetto a un valore precedente. Puoi farlo in Impostazioni avanzate (Sito Web -> Gestisci sito Web -> Impostazioni avanzate>.


2

Ho anche avuto lo stesso problema durante l'esecuzione della mia applicazione localmente che punta a .Net Framework 4.7.1. Il bug era " Attributo non riconosciuto TargetFrameWork " come mostrato di seguito. inserisci qui la descrizione dell'immagine

Ma nessuna delle risposte sopra mi ha aiutato. Alla fine, quando ho cambiato il mio numero di porta attuale (1413) con un altro valore (60179), come mostrato di seguito, ha funzionato bene per me, ma non sono sicuro per il vero motivo dietro questo, ma ha funzionato.

inserisci qui la descrizione dell'immagine


Sto solo verificando che ho avuto questo errore esatto e ho provato semplicemente a cambiare la porta come indicato in questa risposta. Sto eseguendo il client di prova WCF per avviare questo servizio su localhost. Dopo aver modificato il numero di porta, è stato possibile avviare il servizio. Grazie per il tuo suggerimento.
Evan,

Dopo aver provato tutti i suggerimenti solo questo ha risolto il mio problema. Grazie mille.
Prabo

Il tuo benvenuto @Prabo, se possibile, aiutami con il voto UP
Rinoy Ashokan,

Il tuo benvenuto @Evan, se possibile, per favore aiutami con il voto UP
Rinoy Ashokan l'

1

Ho appena avuto questo in VS 2010.

Risolto modificando il file .sln e cambiando TargetFrameworkMoniker in modo che gli venisse assegnato il valore ".NETFramework, Version% 3Dv4.0" .


0

Se compili i file e il valore di "targetFramework" viene impostato come una versione particolare, ad esempio 4.0,

Assicurarsi che l'host esegua il framework .net della stessa versione indicata.

In caso contrario, scarica il framework .net.

Dopo il download, se nel gestore IIS non è impostato automaticamente l'utilizzo dell'estensione della versione appena scaricata del framework .net,

aggiungere l'estensione manualmente accedendo alla cartella del framework .net scaricato di recente ATTRAVERSO IIS manager:

1. fare clic con il pulsante destro del mouse sulla cartella del sito Web

2. vai a "Proprietà"

3. sotto "directory virtuale", fare clic su "configurazione"

4.editare il percorso eseguibile dell'estensione ".aspx" (di cui il percorso viene puntato a una versione diversa dalla versione del framework .net scaricato di recente) al percorso corretto che è la cartella della versione scaricata di NEWly del framework .net e quindi selezionare il file "aspnet_isapi.dll".

5.clicca ok!


0

Basta rimuovere "Target Framework 4.0" e chiudere la parentesi.

Funzionerà


0

Segui questi due passaggi:

Registrare la versione 4.0 del framework .net (se non è registrata)

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

  2. Nel pool di app modificare il framework .net in v4.0


0

Se si installa IIS dopo l'installazione di .Net FrameWork. È necessario installare nuovamente il framework .net per IIS. Quindi tutto ciò che dobbiamo fare è correre aspnet_regiis -i. Spero sia utile


0

Ho visto l'errore "Attributo non riconosciuto 'targetFramework'" nella pagina "Console output" di Jenkins su un server di compilazione. Questo è stato dopo che ho cambiato il "framework di destinazione" per diversi progetti da ".NET Framework 3.5" a ".NET Framework 4" e ho eseguito il commit delle mie modifiche.

In Jenkins è stato necessario modificare le impostazioni del progetto. Per la soluzione, la "Versione MSBuild" doveva essere cambiata da "v3.5" a "v4.0".


0

Ho appena avuto questo problema con la distribuzione di una nuova app in una vecchia scatola IIS. L'indagine ha portato all'installazione del runtime v4.5.1 ma all'app che richiede v4.5.2

Nulla di diverso dall'installazione della versione corretta di runtime ASP .Net era necessario.


0

È possibile che tu abbia il tuo file proj MSBUILD e stai utilizzando l' <AspNetCompiler>attività. Nel qual caso è necessario aggiungere ToolPathper .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

Per stratificare, basta cambiare la versione di targetFramework solo nel file web.config, le altre cose non devono essere cambiate.



0

i seguenti 2 passaggi imporranno l'aggiornamento della cache di Visual Studio e IIS Express e di solito risolvono i miei problemi simili:

  1. Passa semplicemente da Project Framework da 4+ a .Net framework 3.5 ed eseguilo
  2. Se è stato eseguito correttamente, è possibile ripristinarlo al framework di destinazione 4+ desiderato e vedere che probabilmente funzionerà di nuovo.

0

La modifica del numero di porta per lo sviluppo locale mi ha aiutato Grazie @Rinay Ashokan. Ho risolto tutti i problemi e alla fine ho scoperto che le configurazioni del progetto sono memorizzate in IIS express per il numero di porta. inserisci qui la descrizione dell'immagine


-1

Per chiunque abbia questo che non ha IIS in esecuzione sul proprio PC di sviluppo, ecco cosa mi è successo: avevo un sito Web acceso, sovrascritto con file da un sito Web diff che era 4 mentre il precedente era 3.5. Ho questo errore. Risolto semplicemente cambiando il nome della directory del sito Web, che su un PC di sviluppo può essere qualsiasi cosa, quindi nessun problema. Quanto sopra è probabilmente più elegante per essere sicuro, ma a volte funziona in modo semplice, SE puoi farcela, cioè sei in sviluppo piuttosto che QA o Prod.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.