提供者选项中的“compilerVersion”属性必须是“v4.0”或更高版本。

12

遇到了这个错误:

如果您正在为.NET Framework的4.0或更高版本进行编译,则提供程序选项中“compilerVersion”属性的值必须为“v4.0”或更高版本。要为.NET Framework的3.5或更早版本编译此Web应用程序,请从Web.config文件的元素中删除“targetFramework”属性。

在我们的开发系统上它是正常工作的,现在我们使用xcopy类型的部署将其部署到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上运行,留下这部分会出什么问题?

我们刚刚完全复制了Test中的内容到QA中,在QA中出现了错误,而DEV没有出现。因此,软件和配置是相同的。为什么它能在一个服务器上工作而在另一个服务器上不能?IIS选项似乎是相同的。


可能的解决方案 https://dev59.com/E3A75IYBdhLWcg3wZ4Nr - Raghav
4个回答

8

5

谢谢,但我们确实需要4.0版本,并且IIS ASP.NET版本已设置为4.0.30319。 - NealWalters
3
@Neal。那篇文章是针对4.0版本的。看看答案。标题有误导性。在你的web.config层级(应用程序级别,站点级别等)中,有一个<compiler>/<compiler>标记指向.NET 3.5,这会让Web服务器感到困惑。 - Naraen
区别在于他们是 <add assembly=System.Core, Version=3.5.0.0,而我是4.0.0.0... 当我们将其注释掉后,现在我们成功了,但是一段时间前我们会得到“抛出了类型为 'System.Web.HttpUnhandledException' 的异常。”我们仍在努力追寻不同之处。我的主要观点是,在我的测试环境中应该有完全相同的错误。我们不希望在进入QA时遇到这样的错误(并且配置是相同的)。 - NealWalters
5
上面的链接已经失效了。对于那些有困难的人,请查看这篇微软文章:http://www.asp.net/whitepapers/aspnet4/breaking-changes#0.1__Toc256770150 - Fabio Napodano
@Naraen做得很好。我们的主站点有指定v=2.0和providerOption v=3.5的<compiler>标签。我将它们都删除了,我们的主站点仍然可以正常工作,并且该站点中针对Framework 4.0及以上版本的应用程序也可以正常运行(现在我们可以在web.config中保留编译标记并编译正确的版本)。 - deebs

1
我遇到了同样的错误,并发现我的v4.0网站是托管在默认网站v2.0下的。如果您也有这样的设置,则需要从您的web.config中删除以下行:
<compilation defaultLanguage="c#" debug="true" targetFramework="4.0"/>

我希望这有所帮助。

1

经过一段时间的尝试,我最终创建了一个使用不同端口的新IIS站点,并将我的ASP.Net 3.5应用程序添加到了新站点中,现在它完美地运行着。


太棒了,差点浪费了我4个小时,真是救了我的一命。 - Neeraj Dubey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接