Dot-Net
如何清除客戶端 .Net SSL 會話記憶體
我正在編寫一個小測試工具,它使用 HttpWebRequest 對伺服器進行負載測試。每次我嘗試呼叫 HttpWebRequest.GetResponse() 時,我都希望它建立一個新的 SSL 會話,而不是使用記憶體中的會話。注意:我正在提供客戶端證書,並為 SSL 會話使用相互身份驗證。
有沒有辦法清除http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.clientcertificates.aspx中提到的 SSL 會話記憶體 ?
我認為您正在尋找 HttpRequestCacheLevel 列舉值 NoCacheNoStore
http://msdn.microsoft.com/en-us/library/system.net.cache.httprequestcachelevel.aspx
然後您可以覆蓋 HttpRequestCachePolicy
http://msdn.microsoft.com/en-us/library/system.net.webrequest.cachepolicy.aspx
ServicePoint 類有一個名為的內部方法
ReleaseAllConnectionGroups,它設置KeepAlive = false所有連接然後釋放它們。這個答案包括所有需要的反射,但是KeepAlive = false每個 HttpWebRequest 的設置都會保持客戶端的 .Net SSL 會話記憶體清晰。
SslEmptyCache可能需要清除SCHANNEL 在本機程式碼級別完成的 SSL-SessionID 和/或票證的記憶體。