c# - 如何修复 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 的所有指示。
解决方案
微软以其无限的版本智慧认为我看到的 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。
推荐阅读
- haproxy - HAProxy 超时保持活动与超时客户端
- python - 从网站动态解析时处理表中的非浮点数和 Nan 值
- amazon-web-services - AWS CodePipeline 将 Spring Boot 应用程序部署到 Elastic BeansTalk
- node.js - 在 Heroku 上部署 Node.js 错误:![remote denied] master -> master (pre-receive hook denied)
- node.js - 数组在 Nodejs 中使用 async 和 await 不返回任何内容
- python - 信号和函数之间的 PyQt 程序连接不起作用
- javascript - 8皇后问题。这个 JavaScript 代码是如何工作的?
- python - 阅读熊猫专栏时出现奇怪的错误
- wpf - 如何将按钮样式添加到 wpf 中的窗口资源
- php - php mysql 加入两个表以加入一些列并联合一些列