2011-11-10 29 views
42

Eventuali duplicati:
Unrecognized attribute 'targetFramework'. Note that attribute names are case-sensitiveattributo non riconosciuto 'targetFramework'

In primo luogo, vorrei dire che io sono consapevole del fatto che questa domanda è stato chiesto un paio di volte su questo sito - ma le risposte a tutti questi non risolvono il mio problema.

sto vedendo il seguente problema quando si tenta di aggiungere un nuovo gestore gestito in IIS7:

attributo non riconosciuto 'targetFramework'. Tieni presente che i nomi degli attributi fanno distinzione tra maiuscole e minuscole.

L'ambiente è Windows Server Enterprise 2008 SP1 con IIS7 installato.

La mia applicazione utilizza .NET 4.0. Il framework .NET è stato installato dopo IIS:

Ho provato/verificato quanto segue:

  • mio pool di app sta usando .NET 4.0 (ho una versione di .NET 4.0 installato, non di beta ecc .)
  • Garantito. NET 4.0 è registrato correttamente con IIS utilizzando 'aspnet_regiis.exe -iru'.
  • Riciclato il pool di app, riavviato il computer.
  • Completamente disinstallato. NET 4.0, quindi reinstallato.
  • Rimosso l'attributo 'targetFramework' - questo causa solo un crash altrove.

Per me sembra che IIS stia ancora facendo riferimento a una versione precedente di .NET in qualche modo, anche se i miei pool di app in IIS mi dicono che stanno usando .NET 4.0.

Il mio sito Web funziona correttamente, ma non è possibile impostare il gestore di immagini personalizzato a causa di questo problema.

Apprezzerei molto qualsiasi consiglio.

Grazie.

UPDATE

Questo è pazzesco .. ho completamente ricostruita da ambiente da zero:

  • Download 'di Windows Server Enterprise senza Hyper V SP1' da MSDN.
  • Installare .NET 4.0
  • installare ASP.NET MVC 3
  • Aggiungere il ruolo del 'Web Server' - garantire App Pool sta usando .NET 4.0
  • Distribuire il mio progetto

Lo stesso errore si verifica quando provo ad aggiungere una mappatura di hanlder personalizzata. Sto facendo qualcosa di sbagliato/completamente stupido o c'è qualche problema con IIS7 in questa configurazione.IIS non riconosce l'attributo 'targetFramework' da .NET 4.0, anche se il pool di app è impostato per l'utilizzo di .NET 4.0.

Se utilizzo il comando "aspnet_regiis -lv", mi dice che solo .NET 4 è registrato con IIS.

+0

Non hai menzionato provare questa soluzione: http://stackoverflow.com/questions/5420094/unrecognized-attribute-targetframework-in- 4-0-site-with-2-0-sub-folder – Rob

+0

L'ho visto: la mia versione di IIS è 7 e la directory virtuale utilizza definitivamente .NET 4.0 (almeno secondo IIS). A questo punto sto pensando di ricostruire l'intero ambiente da zero. –

+0

Qual è il numero esatto della versione di .NET mostrato nel pool di applicazioni? È '4.0.21006.1'? Potresti anche mostrare come appare il tuo web.config? –

risposta

62

Registrazione del quadro con IIS è ciò che ha funzionato per me:

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

Grazie mille, ha funzionato anche per me. –

+4

Si noti '' 'lì, l'ho scambiato per un percorso completo. –

+1

Realmente non capisco perché questo dovrebbe essere necessario quando installi IIS con asp.net come caratteristica selezionata:/ – Ortund

29

Avete la configurazione del sito nel nodo del sito "Sito Web predefinito" o avete creato un nuovo sito in IIS? Se hai creato un nuovo sito, prova ad andare al 'Sito Web predefinito' e cambiando il suo pool di applicazioni da 'DefaulAppPool' a 'Asp.Net v4.0.' So che il "Sito Web predefinito" non dovrebbe avere nulla a che fare con il tuo sito, ma ho letto che in alcune situazioni questo ha aiutato a risolvere il problema. Inoltre, per far funzionare il gestore di immagini personalizzato, prova a utilizzare un gestore HTTP privo di configurazione, con estensione di file .ashx. In questo modo puoi far funzionare il gestore di immagini (finché non risolvi questo problema) senza doverlo registrare in IIS.

+0

È un sito separato in IIS in esecuzione su una porta diversa. Il mio sito Web predefinito è in esecuzione nello stesso pool di app .NET 4.0. Una cosa che ho notato è che sotto IIS -> .NET Compilation -> General -> Assemblies, tutti gli assembly sembrano puntare alla versione 2.0 –

+1

Anche io ho la maggior parte di IIS >>. NET Compilation >> Generale >> Assemblies che punta a versione 2.0, mentre alcuni altri puntano a 3.0 e 3.5. Questo identifica solo la versione .net con cui sono stati costruiti questi assembly. Non sono sicuro che questo abbia qualcosa a che fare con il tuo problema. – bbeny

+0

Grazie! Questo ha funzionato per me. Assolutamente pazzo. è un insetto? –

Problemi correlati