今天使用测试APP和服务器端进行数据交互时,死活过不去,查看异常信息提示:“因为算法不同,客户端和服务器无法通信”。 最后通过道友的一篇文章找到了解决方案,在此记录一下。
原因可能是Http请求的安全协议不同导致的,服务器的系统是windows Server 2016 Datacenter. 配置了https协议证书,支持TLZ1.2,TLZ1.1等安全传输。 而app的接口代码是.net framework 4.5且再发送http请求时未指定协议版本,默认发送的协议头应该是没有启用安全协议(.net4.5所支持的最低tlz安全版本,最高为TLZ1.2)。 那么如果服务器端设置了安全标准,要求TLZ1.2,那么想让程序按照最高安全协议TLZ1.2传输数据的话,是需要手动指定的。
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; // 或者 System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
参考文章:
c# – 客户端和服务器无法通信,因为它们在Windows Server 2008 Web上没有通用算法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。