繁体   English   中英

如何修复“ compilerVersion” IIS错误?

[英]How do I fix the “compilerVersion” IIS error?

我收到此异常:

System.Configuration.ConfigurationErrorsException:如果要针对.NET Framework 4.0版或更高版本进行编译,则提供程序选项中'compilerVersion'属性的值必须为'v4.0'或更高版本。

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

我有一个类似的问题,必须通过修改Web.config告诉ASP.NET在配置中使用3.5编译器,如下所示。

我已经从代码中复制并粘贴了以下内容。 您必须将value =“ v3.5”更改为value =“ v4.0” 编译器类型字符串也可能会更改。

<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网站项目中工作。

您可能会从以下地方收集到更多见解:

这应该有所帮助

<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">标记已对其进行了修复。

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

我们不小心将粘贴的Web.config复制到C:\\ inetpub \\ wwwroot 此意外复制粘贴的Web.config具有不匹配的配置,并为我们造成了editorVersion错误。 删除Web.config为我们解决了这个问题。

在我的情况下,它是默认网站下的子站点,尽管默认网站设置是在ASP.NET 4.0中设置的,但web.config文件却设置为2.0和3.5。 更改web.config文件以使用4.0修复了该问题。 使用此作为参考: ASP.NET 4重大更改

就我而言,我使用的是旧的Webform网站(V 2.0),需要附加一个在MVC4.0中开发的新应用程序。 我遇到了同样的错误,经过给定解决方案的许多排列和组合之后,我将父应用程序的整个web.comfig包装在以下标记中

<location path="." inheritInChildApplications="false">
...... web config tags here........
</location> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM