2010-07-23 12 views
51

Ich erhalte diese Ausnahme:Wie behebe ich den "CompilerVersion" IIS Fehler?

System.Configuration.ConfigurationErrorsException: Der Wert für das Attribut ‚Compiler‘ in den Provider-Optionen müssen ‚v4.0‘ oder später sein, wenn Sie für die Version kompiliert werden 4.0 oder höher von .NET Framework.

Was soll ich tun, um dies zu beheben?

Antwort

56

Ich hatte ein ähnliches Problem und hatte ASP.NET in der Konfiguration zu sagen, den 3,5-Compiler zu verwenden, wie durch Web.config Modifikation folgt.

Ich habe die folgenden aus meinem Code kopiert und eingefügt. Sie müssen ändern Wert = "v3.5" zu Wert = "v4.0". Der Compiler-Typ Strings könnte sich auch ändern.

<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> 

In meinem Fall wurde der 2.0-Compiler anstelle von 3,5 verwendet. Ich arbeitete in einem IIS 7, ASP.NET Website-Projekt.

Sie könnten von zusätzlichen Einblick aufzulesen:

+0

Danke für diese Antwort. Hat super funktioniert. – Tarik

+1

4igi Antwort hat die C# 4.0 Antwort. – pauloya

+1

Dieser Weg funktioniert für C# und VB.NET. Vielen Dank! – Corgalore

9

Entfernen dieser Abschnitt von web.config

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

Ich habe dich nicht gesehen, dass du deine eigene Frage beantwortet hast, bevor ich meine Mine ausgefüllt habe :) –

+0

Ja, aber deine war vollständiger. –

+2

Sie müssen auch in 4.5 entfernen. – James

27

sollte

<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

In meinem Fall ist es eine Kind-Website unter der Default Website war und obwohl die Standard-Website-Einstellungen festgelegt wurden bei ASP.NET 4.0 wurde die Datei web.config gesetzt Hilfe für 2.0 und 3.5. Das Ändern der web.config-Datei, um 4.0 zu verwenden, hat es behoben. Verwenden Sie dies als Referenz: ASP.NET 4 Breaking Changes

+0

in meinem Fall hat dies sehr geholfen, danke! –

25

In meinem Fall habe ich versucht, eine untergeordnete Anwendung mit 4.0 auszuführen, aber die übergeordnete Anwendung musste weiterhin 2.0 verwenden. Wrapping der Compiler-Informationen in der übergeordneten web.config mit einem <location path="." inheritInChildApplications="false">-Tag behoben.

Eltern 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

Dieser half meiner Situation. Wir hatten keine Probleme mit gemischten .Net-Versionen auf dem Server, bis eine Hersteller-MSI ausgeführt wurde. –

+1

Schön ... das hat mein Problem behoben (ASP.NET 4 Site ist Kind von ASP.NET 2.0) –

1

Wir hatten versehentlich kleistert Kopie Web.config in C: \ inetpub \ wwwroot. Diese versehentlich kopierte Web.config-Datei hatte eine nicht übereinstimmende Konfiguration und verursachte den CompilerVersion-Fehler für uns. Durch das Löschen der Web.config wurde das Problem für uns gelöst.

Verwandte Themen