我正在编写一个小测试工具,它使用 HttpWebRequest 对服务器进行负载测试。我想要 每次我尝试调用 HttpWebRequest.GetResponse() 时,它都会建立一个新的 SSL session ,而不是使用缓存中的 session 。注意:我正在提供客户端证书,并为 SSL session 使用相互身份验证。
有没有办法清除 http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.clientcertificates.aspx 中提到的 SSL session 缓存? ?
最佳答案
ServicePoint 类有一个名为 ReleaseAllConnectionGroups
的内部方法在所有连接上设置 KeepAlive = false
然后释放它们。 This answer包括所有需要的反射,但是在每个 HttpWebRequest 上设置 KeepAlive = false
将保持客户端 .Net SSL session 缓存清晰。
SslEmptyCache
可能需要清除 caching of SSL-SessionID和/或由 SCHANNEL 在 native 代码级别完成的票证。
关于.net - 如何清除客户端 .Net SSL session 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5250887/