Server 2016 上的 .NET 定位错误

Server 2016 上的 .NET 定位错误

我有一个编译为 4.7.2 的应用程序 (wcf 服务)。解决方案中的所有项目都以该框架版本为目标。

在服务器(Windows Server 2016)上安装了 Framework 4.7.2(在错误页面中报告为 ASP.NET Version:4.7.3282.0)

当我浏览 WCF 服务时抛出的错误:

“Web.config 文件元素中的‘targetFramework’属性仅用于定位 .NET Framework 4.0 及更高版本(例如,‘’)。‘targetFramework’属性当前引用的版本高于已安装的 .NET Framework 版本。请指定有效的 .NET Framework 目标版本,或安装所需的 .NET Framework 版本。”

以下是 Web 配置中指示的错误行(错误发生在第 25 行):

第 23 行:</appSettings>
第 24 行:<system.web>
第 25 行:<compilation targetFramework="4.7.2" />
第 26 行:<httpRuntime targetFramework="4.7.2" />
第 27 行:<customErrors mode="Off" />

如果我打开命令提示符并转到 c:\windows\microsoft.net\framework64\v4.0.30319 目录并运行“msbuild -version”,它会响应

4.7.2053.0

我尝试更改一些应用程序池设置,但没有成功。有人有什么想法吗?

编辑:我将解决方案中的所有项目降级到版本 4.7,这似乎解决了这个问题。我不确定为什么,因为服务器给出的所有迹象都表明安装了 4.7.2

答案1

微软凭借其无限的版本控制智慧,认为我看到的 MS Build 版本 (4.7.2053.0) 实际上是 Framework 版本 4.7。此外,错误页面上显示的版本 (4.7.3xxx) 实际上是 ASP.NET 版本,与 Framework 版本不同。

因此,尽管所有迹象都表明我使用的是 4.7.2 版本(包括我们的服务器管理员也这么说),但我实际上使用的是 4.7 版本。

一旦我们安装了 4.7.2 版本,一切就都正常了。

相关内容