如何解决“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解决了我们的问题。