问题 提供程序选项中的“compilerVersion”属性必须为“v4.0”或更高版本


得到此错误:

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

它正在开发我们的开发系统,我们现在正在使用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,那么离开本节有什么问题?

我们刚刚完成了一个完整的xcopy,其中包含了Test to QA中的确切内容,而在QA中,它得到了错误而DEV却没有。所以软件和配置是相同的。为什么它可以在一台服务器上运行而不在另一台服IIS选项似乎完全相同。


8353
2018-04-04 23:30


起源

可能的方案 stackoverflow.com/questions/3314469/... - Raghav


答案:


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

你应该去你的服务器根web.config并包括整个   <system.codedom>...</system.codedom> 将内容标记为 <location path="" inheritInChildApplications="false">...</location>  标签


8
2017-08-05 11:04





可能的解决方案 - asp.net/whitepapers/aspnet4/breaking-changes#0.1__Toc256770150 


4
2018-04-04 23:45



谢谢,但我们确实想要4.0,而IIS ASP.NET版本设置为4.0.30319。 - NealWalters
@Neal。那篇文章是4.0。看看答案。标题具有误导性。在web.config层次结构(应用程序级别,站点级别等)的某处,有一个指向.NET 3.5的<compiler> / <compiler>标记,这会使Web服务器感到困惑。 - Naraen
不同的是他们有<add assembly = System.Core,Version = 3.5.0.0,我有4.0.0.0 ...当我们发表评论时,我们现在有了成功,但不久之前我们得到了“类型异常抛出'System.Web.HttpUnhandledException'。“我们仍在努力追逐不同的东西。我的主要观点是我的TEST环境应该有完全相同的错误。当我们去QA(并且配置是相同的)时,我们不希望出现这样的错误。 - NealWalters
上面的链接不再起作用了。对于遇到麻烦的人,请查看这篇MS文章: asp.net/whitepapers/aspnet4/breaking-changes#0.1__Toc256770150 - Fabio Napodano


经过一段时间的斗争后,我最终使用不同的端口创建了一个新的IIS站点,并将我的ASP.Net 3.5应用程序添加到新站点,它运行正常。


1
2017-09-18 20:05



真棒,拯救我的生命几乎浪费4小时。 - Neeraj Dubey


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

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

我希望有所帮助。


1
2017-07-08 16:10