我尝试连接到通过HTTPS提供的Web服务,该服务使用来自C#应用程序的TLS加密。第一次连接总是正常。完成TLS握手,客户端发送Client-Hello消息,服务器响应Server Hello等。但是,如果第一个连接已关闭(例如,通过将KeepAlive
设置为false或已超出ServicePointManager.MaxServicePointIdleTime
,则下一个请求始终会失败并显示WebException
“无法创建SSL / TLS安全信道”。
我使用Wireshark检查软件包,发现第二个带有新连接的“Client Hello”TLS请求总是包含一个被服务器拒绝的“TLS SessionTicket”。第一个“Client-Hello”消息不包含此SessionTicket。所以我想知道.NET框架是否“存储”了某个地方的会话数据,是否有办法让.NET解雇这个SessionTicket?