c# – 因为算法不同,客户端和服务器无法通信
今天使用测试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上没有通用算法
*感谢您的阅读。喜欢的、有用的就请大哥大嫂们高抬贵手“推荐一下”吧!你的精神 支持是博主强大的写作动力。欢迎转载!
*博主的文章是自己平时开发总结的经验,由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。
*我的博客: http://www.cnblogs.com/lxhbky/
*博主的文章是自己平时开发总结的经验,由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。
*我的博客: http://www.cnblogs.com/lxhbky/