【问题标题】:'compilerVersion' attribute in the provider options must be 'v4.0' or later提供程序选项中的“compilerVersion”属性必须是“v4.0”或更高版本
【发布时间】:2011-04-04 23:30:46
【问题描述】:

得到这个错误:

“compilerVersion”的值 提供者选项中的属性必须 如果您是“v4.0”或更高版本 为 4.0 或更高版本编译 .NET 框架。编译这个 3.5 版的 Web 应用程序或 .NET Framework 的早期版本,删除 'targetFramework' 属性来自 的元素 Web.config 文件。

它在我们的开发系统上运行,我们现在正在使用 xcopy 类型的 deploy 部署到 QA。

我们在 web.config 的任何地方都没有“compilerVersion”,并且 targetFramework 设置为“4.0”。我们已经完成了 IISReset。

<system.web>

        <compilation debug="true" targetFramework="4.0">
        <assemblies>
            <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        </assemblies>
    </compilation>

更新 2:当我们删除整个部分时,我们克服了错误。所以我的问题是,如果我们在 .NET 4.0 上离开本节有什么问题?

我们刚刚对测试到 QA 中的内容进行了完整的 xcopy,在 QA 中它得到了错误,而 DEV 没有。所以软件和配置是一样的。为什么它可以在一台服务器上运行而不是另一台服务器? IIS 选项似乎是相同的。

【问题讨论】:

标签: web-config asp.net-4.0


【解决方案1】:

取自:http://www.asp.net/whitepapers/aspnet4/breaking-changes#0.1__Toc256770150

你应该去你的服务器根 web.config 并包含整个 &lt;system.codedom&gt;...&lt;/system.codedom&gt; 将内容标记为 &lt;location path="" inheritInChildApplications="false"&gt;...&lt;/location&gt; 标记

【讨论】:

    【解决方案2】:

    【讨论】:

    • 谢谢,但我们确实想要 4.0,并且 IIS ASP.NET 版本设置为 4.0.30319。
    • @尼尔。那篇文章是针对4.0的。看看答案。标题具有误导性。在您的 web.config 层次结构(应用程序级别、站点级别等)中的某处,有一个 / 标记指向 .NET 3.5,这会使 Web 服务器感到困惑。
    • 不同的是他们有
    • 上面的链接失效了。对于那些遇到麻烦的人,请查看这篇 MS 文章:asp.net/whitepapers/aspnet4/breaking-changes#0.1__Toc256770150
    • @Naraen 做到了。我们的主站点具有指定 v=2.0 和 providerOption v=3.5 的 标记。我将它们都删除了,我们的主站点以及该站点中的 targetFramework 4.0 及更高版本的应用程序仍然有效(现在我们可以将该编译标记保留在 web.config 中并编译正确的版本)
    【解决方案3】:

    在与这个问题斗争了一段时间后,我最终使用不同的端口创建了一个新的 IIS 站点,并将我的 ASP.Net 3.5 应用程序添加到新站点,它运行良好。

    【讨论】:

    • 太棒了,挽救了我几乎浪费了 4 小时的生命。
    【解决方案4】:

    我遇到了同样的错误,发现我的 v4.0 网站托管在默认网站 v2.0 下。如果您有这样的设置,那么您需要从 web.config 中删除以下行:

    <compilation defaultLanguage="c#" debug="true" targetFramework="4.0"/>
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多