如何解决“compilerVersion”IIS错误?

我得到这个例外:

System.Configuration.ConfigurationErrorsException:如果您正在编译.NET Framework 4.0或更高版本,则提供程序选项中的“compilerVersion”属性的值必须为“v4.0”或更高版本。

我该怎么做才能解决这个问题?

我有一个类似的问题,不得不通过修改Web.config在configuration中告诉ASP.NET使用3.5编译器。

我从我的代码中复制并粘贴了以下内容。 您必须将value =“v3.5”更改为value =“v4.0”编译器typesstring也可能会改变。

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

在我的情况下2.0编译器被使用,而不是3.5。 我在一个IIS 7,ASP.NET网站项目中工作。

您可能会从以下方面收集更多的信息:

  • System.CodeDom命名空间或
  • 用于编译的编译器元素 – ASP.NET设置架构 。

这应该有所帮助

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

就我而言,我试图使用4.0来运行子应用程序,但是父应用程序仍然需要使用2.0。 在父web.config中用<location path="." inheritInChildApplications="false">包装编译器信息<location path="." inheritInChildApplications="false"> <location path="." inheritInChildApplications="false">标签修复了它。

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

从web.config中删除这一部分

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

在我的情况下,它是默认网站下的一个子网站,虽然默认的网站设置是在ASP.NET 4.0中设置的,但web.config文件设置为2.0和3.5。 更改web.config文件使用4.0修复了它。 使用这个参考: ASP.NET 4重大更改

我们不小心将Web.config复制到C:\ inetpub \ wwwroot中 。 这意外复制粘贴Web.config有configuration不匹配,并导致我们的compilerVersion错误。 删除Web.config解决了我们的问题。