Json Post到 https的坑 - the underlying connection was closed an unexpected error occurred on a send(远程服务器未知错误导致关闭)
最近做了一个安装包,安装包会弹出dotnet的 窗体,这个安装包会去调用https的一个api。用测试程序测试窗体都是好的。一旦打入安装包后,就报错。研究了半天,原来是https惹的祸
解决方案
:
.NET 4.6 and above. You don’t need to do any additional work to support TLS 1.2, it’s supported by default.DOTNET 4.6.1 以上版本,默认就可以了
.NET 4.5. TLS 1.2 is supported, but it’s not a default protocol. You need to opt-in to use it. The following code will make TLS 1.2 default, make sure to execute it before making a connection to secured resource:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
- .NET 4.0. TLS 1.2 is not supported, but if you have .NET 4.5 (or above) installed on the system then you still can opt in for TLS 1.2 even if your application framework doesn’t support it. The only problem is that SecurityProtocolType in .NET 4.0 doesn’t have an entry for TLS1.2, so we’d have to use a numerical representation of this enum value:
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
- .NET 3.5 or below. TLS 1.2 is not supported (*) and there is no workaround. Upgrade your application to more recent version of the framework. DOTNET3.5不支持
各种tls版本兼容写法:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls
其实默认配置DOTNET 4.6.1 以上版本就可以了,但是因为我是安装包,没法写配置文件.....
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
最新文章
- SOUI更新到2.0
- jQuery代码节选(事件)
- 前端学习笔记——移动前端UI选择
- PHP API接口测试小工具
- Javascript 布尔操作符总结
- github上写blog
- 树分治 点分治poj 2114
- Python类的特点 (2) :类属性与实例属性的关系
- 【C++沉思录】代理类
- 高通APQ8074 spi 接口配置
- CSS3中box-shadow的用法介绍
- jQuery日期和时间插件(jquery-ui-timepicker-addon.js)中文破解版使用
- hdu 5607 graph (矩阵乘法快速幂)
- jetty启动设置端口
- tornado+websocket+mongodb实现在线视屏文字聊天
- Java 一个关于使用&;&;导致的BUG
- 【数位dp】Beautiful Numbers @2018acm上海大都会赛J
- js插件---bootstrap-datepicker.js是什么
- Codechef September Challenge 2018 游记
- mysql定时执行某任务