☰
32、工作流中调用和暴露 Web 服务的深入解析
2026/10/29 15:34:47 网站建设 项目流程

工作流中调用和暴露 Web 服务的深入解析

工作流中会话管理与长运行 XML Web 服务

在工作流中启用会话管理有一个重要原因,工作流的完成可能需要很长时间,尤其是涉及到人的工作流,本质上就是长运行的。当 XML Web 服务也是长运行时,就需要将相关查询关联起来以获取服务结果。

例如,当 XML Web 服务需要人工干预或者设计上需要很长时间完成(如等待订单完成)时,客户端工作流也会变为长运行工作流。此时,为避免资源占用,通常会暂停处理,稍后再查询服务是否完成。

若在请求 XML Web 服务后暂停处理,之后再次查询服务时,如果不使用相同会话,服务器很可能会抛出异常,除非使用其他关联服务器查询的机制。因此,需要获取第一次调用 XML Web 服务时创建的会话 cookie,并保存其信息以供后续使用。

以下是保存会话 cookie 信息的代码示例:

private void FirstWebMethodInvokedHandler(object sender, InvokeWebServiceEventArgs e) { MyWebServiceProxy ws = e.WebServiceProxy as MyWebServiceProxy; foreach (System.Net.Cookie cookie in ws.CookieContainer.GetCookies(new Uri(ws.Url))) {

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询