【发布时间】:2018-02-16 02:16:04
【问题描述】:
我在 .NET Framework 4.7.1 中有以下代码:
using (var handler = new HttpClientHandler())
{
handler.SslProtocols = SslProtocols.Tls12;
...
}
此代码适用于我的开发机器(Windows 10 企业版,内部版本 17101/rs4_release.180211-1040;版本 1803;操作系统内部版本 17101.1000)。
相同的代码(当发布到已经安装了 .net framework 4.7.1 的服务结构集群节点时)会导致以下异常:
System.PlatformNotSupportedException: Operation is not supported on this platform.
集群节点正在运行 Windows Server 2012 R2 Data Center,版本 6.3(内部版本 9600)
使用Resharper反编译代码时,我的桌面显示如下信息:
// Type: System.Net.Http.HttpClientHandler
// Assembly: System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// MVID: 7D453494-012A-4FA4-9E04-1C64E3A0FB6F
// Assembly location: C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Net.Http\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Net.Http.dll
它在另一台本地服务器机器上显示以下内容:
// Type: System.Net.Http.HttpClientHandler
// Assembly: System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// MVID: 641F4770-704A-420A-A419-A4FAF4195ADD
// Assembly location: C:\Windows\Microsoft.NET\Framework\\v4.0.30319\\System.Net.Http.dll
如您所见,组装地点不同,但我不知道这意味着什么。另外,我的本地机器的注册表项有这个值:
"Software\\Microsoft\\NET Framework Setup\\NDP\\v4\\Full\\Release": "461802"
集群节点有这个:
"Software\\Microsoft\\NET Framework Setup\\NDP\\v4\\Full\\Release": "461310"
documentation on how to determine the installed framework version 说:
On all other OS versions: 461310
但是我的机器上的“461802”版本甚至都没有列出来!
有人可以提供有关如何克服此错误的指导(不更改我的代码)吗?
【问题讨论】:
-
同意。感谢您在此处指出这一点,而不是在回购中做出回应。我已经锁定并关闭了那里的问题。
-
对不起。很绝望。不会重复。
-
虽然我完全可以理解当这出现在公告回购中时人们感到恼火,但这实际上并不是拒绝这个问题的理由。撇开格式问题不谈,这实际上是一个非常好的问题,值得积极关注。 – @Raghu 您不耐烦是可以理解的,但在您开始在其他地方做广告之前,请给您的问题更多时间。很可能有人迟早会看到这个问题。
标签: .net dotnet-httpclient .net-4.7