以下代码抛出“platformnotsupportedexception”'此平台不支持操作'
它是作为Web应用程序运行的.NET 4.6.1项目引用的一个NET标准库(已尝试针对1.4和2.0进行编译)。
var handler = new HttpClientHandler();
handler.SslProtocols = SslProtocols.Tls12;
为什么TLS12抛出这个异常,什么是解决方法?
最佳答案
这里的问题是.c>属性不存在于.NETFramework上,它只存在于.NETCARE中。
您可以在SslProtocols
的文档中看到这一点。
.NET Framework
.NET Core
在.NET框架中,您必须通过HttpClientHandler
设置它,即
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11;
要在.NET标准PCL中实现这一点,您很可能需要对NETStAMARD2.0和NET461进行交叉编译,因为我不确定它是否仍然存在于.NETFrase/.NETCARE中。
编辑:
或者,从PCL中删除它,并通过上面的静态属性在.NET框架应用程序中全局设置它。