我有一个服务器应用程序,有时,当客户端尝试连接时,我会收到以下错误:
注意:“无法从客户端获取流或登录失败”是我在 catch 语句中添加的文本
它停止的行(sThread:第96行)是:
tcpClient = (TcpClient)client;
clientStream = tcpClient.GetStream();
sr = new StreamReader(clientStream);
sw = new StreamWriter(clientStream);
// line 96:
a = sr.ReadLine();
可能是什么原因导致这个问题?请注意,它不会一直发生
我在调用网络服务时收到此错误。该问题还与传输级安全有关。我可以通过网站项目调用 Web 服务,但是当在测试项目中重用相同的代码时,我会收到包含此消息的 WebException。在调用之前添加以下行解决了该问题:
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
Edit
System.Net.ServicePointManager.SecurityProtocol https://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.securityprotocol(v=vs.110).aspx- 这个性质
选择安全套接字层 (SSL) 或传输的版本
用于使用以下协议的新连接的层安全 (TLS) 协议
仅安全超文本传输协议 (HTTPS) 方案;现存的
连接没有改变。
我相信SecurityProtocol
在选择协议版本时,TLS 握手期间的配置非常重要。
TLS 握手 https://en.wikipedia.org/wiki/Transport_Layer_Security#Protocol_details- 该协议用于通过 TLS 交换实际应用数据交换双方所需的所有信息。
客户您好- 客户端发送一条 ClientHello 消息,指定其支持的最高 TLS 协议版本...
服务器问候语- 服务器用 ServerHello 消息进行响应,其中包含所选的协议版本...所选的协议版本应该是客户端和服务器都支持的最高版本。例如,如果客户端支持TLS版本1.1,服务器支持版本1.2,则应选择版本1.1;不应选择 1.2 版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)