首页 > 解决方案 > 如何修复 Server 2016 上的定位错误?

问题描述

不是重复的/没有在其他线程 中回答 所指出的重复都不是我遇到的问题,因为我已经在服务器上安装了 4.7.2。

我有一个编译为 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。

这是来自网络配置的指示错误行(错误在第 25 行):

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

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

4.7.2053.0

我尝试更改一些应用程序池设置无济于事。有人有什么想法吗?

编辑:错误页面(在本地主机下运行时)报告此版本信息: Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.7.3282.0

编辑 2:我将项目中的所有解决方案都降级到了 4.7 版,这似乎已经解决了这个问题。我不知道为什么,因为服务器给出了安装 4.7.2 的所有指示。

标签: c#servercompiler-errors

解决方案


微软以其无限的版本智慧认为我看到的 MS Build 版本(4.7.2053.0)实际上是 Framework 版本 4.7。更重要的是,错误页面上显示的版本(4.7.3282.0)实际上是ASP.NET版本,与framework版本不同。

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

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

要检查的一件事是安装的实际版本:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client

对于 4.7.2,Release 键的值应为 461814。


推荐阅读