我正在使用
await stream.AuthenticateAsServerAsync(serverCert, true, SslProtocols.Tls, false);
在我的应用程序,以确保连接。 不幸的是在罕见的情况下(大约三分之一的1000),这完全挂起。 我试图在较低级别设置超时NetworkStream
和TcpClient
。
但没有什么作品,这些连接不断积累随着时间的推移。
并通过将其完全挂起我的意思是它卡住里面有天(如果该应用程序运行,长期)。
我目前正在与一个肮脏的黑客解决了这个。 即时通讯开始一个新的线程,等待里面5秒,如果通话didnt及时归还我打电话tcpClient.Close()
来强制SslStream中止。
请告诉我这里的问题? 什么是你需要超时上的功能,但没有超载,需要一个时间跨度或到的CancellationToken处理这样一般情况下预期的方式吗?
不应该在TcpClient的下级超时至少抛出一个异常? 这是为什么没有发生要么?