2010-07-23 12 views
51

Ricevo questa eccezione:Come posso risolvere l'errore IIS "compilerVersion"?

System.Configuration.ConfigurationErrorsException: Il valore per l'attributo 'compilerVersion' nelle opzioni di provider deve essere 'v4.0' o in seguito, se state compilando per la versione 4.0 o versioni successive del framework .NET .

Cosa devo fare per risolvere questo problema?

risposta

56

ho avuto un problema simile e dovuto dire ASP.NET in configurazione per utilizzare il compilatore 3.5 come segue modificando Web.config.

Ho copiato e incollato quanto segue dal mio codice. Devi cambiare valore = "v3.5" a value = "v4.0". Le stringhe del compilatore potrebbero anche cambiare.

<configuration> 

    <!-- ... other configuraiton stuff ... --> 

    <system.codedom> 
    <compilers> 
     <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4"> 
     <providerOption name="CompilerVersion" value="v3.5"/> 
     <providerOption name="WarnAsError" value="false"/> 
     </compiler> 
     <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4"> 
     <providerOption name="CompilerVersion" value="v3.5"/> 
     <providerOption name="OptionInfer" value="true"/> 
     <providerOption name="WarnAsError" value="false"/> 
     </compiler> 
    </compilers> 
    </system.codedom> 

</configuration> 

Nel mio caso veniva utilizzato il compilatore 2.0 anziché 3.5. Stavo lavorando in un progetto Web IIS 7, ASP.NET.

Si potrebbe ricavare ulteriori indizi da:

+0

Grazie per questa risposta. Ha funzionato alla grande – Tarik

+1

La risposta 4gi ha la risposta C# 4.0. – pauloya

+1

In questo modo funziona sia per C# che per VB.NET. Grazie! – Corgalore

9

Inserisci questa sezione da web.config

<compilation debug="true" strict="true" explicit="true" targetFramework="4.0" /> 
+0

Non ti ho visto che hai risposto alla tua stessa domanda prima che finissi di riempire il mio :) –

+0

Sì, ma il tuo era più completo. –

+2

Inoltre, è necessario rimuovere in 4.5. – James

27

questo dovrebbe aiutare

<configuration> 
<!-- --> 
<system.codedom> 
<compilers> 
    <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" 
    type="Microsoft.CSharp.CSharpCodeProvider,System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
    <providerOption name="CompilerVersion" value="v4.0"/> 
    <providerOption name="WarnAsError" value="false"/> 
    </compiler> 
</compilers> 
</system.codedom> 
<!-- --> 
</configuration> 
1

Nel mio caso si trattava di un sito figlio sotto il sito Web predefinito e anche se le impostazioni predefinite del sito web sono stati fissati a ASP.NET 4.0, il file web.config è stato fissato per 2.0 e 3.5. La modifica del file web.config per utilizzare 4.0 lo ha risolto. Da utilizzare come riferimento: ASP.NET 4 Breaking Changes

+0

nel mio caso questo ha aiutato molto, grazie! –

25

Nel mio caso, stavo tentando di eseguire un'applicazione figlia utilizzando 4.0, ma l'applicazione padre doveva ancora utilizzare 2.0. Il wrapping delle informazioni del compilatore nel web.config padre con un tag <location path="." inheritInChildApplications="false"> lo ha risolto.

Parent web.config:

<location path="." inheritInChildApplications="false"> 
    <system.codedom> 
    <compilers> 
     <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4"> 
     <providerOption name="CompilerVersion" value="v3.5" /> 
     <providerOption name="WarnAsError" value="false" /> 
     </compiler> 
    </compilers> 
    </system.codedom> 
+0

Questo ha aiutato la mia situazione. Non abbiamo avuto problemi con versioni .Net miste sul server fino a quando non è stato eseguito un MSI del fornitore. –

+1

Bello ... questo ha corretto il mio problema (il sito ASP.NET 4 è figlio di ASP.NET 2.0) –

1

Avevamo accidentalmente copia-incollato Web.config in C: \ inetpub \ wwwroot. Questo web.config accidentalmente copiato ha una configurazione non corrispondente e ha causato l'errore compilerVersion per noi. L'eliminazione di Web.config ha risolto il problema per noi.

Problemi correlati