• 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上没有通用算法

    关于安全性:.NET 4.5中的默认安全协议

  • 相关阅读:
    毕业论文格式
    2018.12.14
    关于百度搜索引擎的优缺点
    2018.12.13
    2018.12.12
    2018.12.11
    2108.12.10
    2018.12.9
    2018.12.8
    2018.12.7
  • 原文地址:https://www.cnblogs.com/lxhbky/p/13817914.html
Copyright © 2020-2023  润新知