IBM ClearQuest OSLC DELETE方法无法释放活跃连接求助
问题:JAZZ OSLC 注销连接失败(VB.NET/Blue Prism环境)
根据CMT OSLC JAZZ文档的会话管理章节,我尝试用DELETE方法注销活跃连接但未成功。我们使用依赖VB.NET代码的Blue Prism,编写了如下代码执行注销,但连接仍未释放,求解决方案。
我的VB.NET代码:
Dim request As System.Net.HttpWebRequest = CType(System.Net.WebRequest.Create("https://your-server/cqweb/oslc/session"), System.Net.HttpWebRequest) request.Method = "DELETE" request.Headers("Authorization") = "Basic " & base64AuthHeader ' ← 已编码的username:password request.Headers("OSLC-Core-Version") = "2.0" request.Accept = "application/json" Try Dim response As System.Net.HttpWebResponse = CType(request.GetResponse(), System.Net.HttpWebResponse) If response.StatusCode = System.Net.HttpStatusCode.NoContent Then logoutMessage = " Successfully logged out." Else logoutMessage = "Logout failed. Status: " & response.StatusCode.ToString() End If response.Close() Catch ex As System.Net.WebException logoutMessage = "Error during logout: " & ex.Message End Try
解决方案建议:
传递会话ID Cookie:多数JAZZ实例要求注销时携带登录时生成的
JSESSIONID,否则无法定位要销毁的会话。添加Cookie容器并传入有效JSESSIONID:Dim cookieContainer As New System.Net.CookieContainer() request.CookieContainer = cookieContainer ' 替换为登录接口返回的JSESSIONID值 cookieContainer.Add(New System.Net.Cookie("JSESSIONID", "your-active-session-id", "/", "your-server"))使用LTPA令牌认证:Basic认证可能不适用于注销请求,改用登录响应中返回的
LtpaToken2令牌作为Authorization头:request.Headers("Authorization") = "LtpaToken2 " & yourLtpaToken2Value确认注销端点正确性:不同JAZZ产品的注销端点可能不同,检查文档确认是否应为
/rm/oslc/session或其他路径,而非/cqweb/oslc/session。完整读取响应流:仅关闭响应可能导致请求未被服务器完全处理,在关闭前读取响应内容:
Try Dim response As System.Net.HttpWebResponse = CType(request.GetResponse(), System.Net.HttpWebResponse) ' 读取响应流确保请求完成 Using reader As New System.IO.StreamReader(response.GetResponseStream()) Dim unusedResponse As String = reader.ReadToEnd() End Using ' 后续状态判断逻辑 response.Close() Catch ex As System.Net.WebException ' 异常处理 End Try排查Blue Prism环境限制:Blue Prism的代码执行沙箱可能存在代理拦截、会话复用或权限限制,先在本地独立运行VB.NET代码测试,确认是否是环境导致的问题。
内容的提问来源于stack exchange,提问作者Susamay Halder
相关产品推荐
相关产品推荐

