我在调用Web服务时收到此错误。该问题还与运输级安全有关。我可以通过网站项目调用Web服务,但是当在测试项目中重用相同的代码时,我会得到一个包含此消息的WebException。在进行调用之前添加以下行解决了问题:
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
编辑
System.Net.ServicePointManager.SecurityProtocol - 此属性选择安全套接字层(SSL)或传输层安全性(TLS)协议的版本,以用于仅使用安全超文本传输协议(HTTPS)方案的新连接; 现有连接不会更改。
我相信SecurityProtocol在选择协议版本时,在TLS握手期间配置很重要。
TLS握手 - 此协议用于交换双方所需的所有信息,以便通过TLS交换实际应用程序数据。
ClientHello - 客户端发送ClientHello消息,指定它支持的最高TLS协议版本...
ServerHello - 服务器以ServerHello消息响应,包含所选的协议版本......所选的协议版本应该是客户端和服务器都支持的最高版本。例如,如果客户端支持TLS 1.1版并且服务器支持1.2版,则应选择版本1.1; 不应选择版本1.2。