调用ASP.NET工作流:承载及限制

开发 后端
Windows Workflow Foundation Web 服务支持以 ASP.NET 2.0 为基础,所以它继承了标准 ASP.NET Web 服务的大部分功能。本文介绍调用ASP.NET工作流用于Web服务的方法。

Windows Workflow Foundation 框架支持 Web 服务互操作性。 该框架能够将工作流作为 Web 服务公开给 ASP.NET 客户端和其他工作流。 Windows Workflow Foundation 支持将工作流作为 ASP.NET Web 服务发布到在 Internet 信息服务 (IIS) 6.0 上运行 ASP.NET 的 Web 服务器或服务器场。 因为 Windows Workflow Foundation Web 服务支持以 ASP.NET 2.0 为基础,所以它继承了标准 ASP.NET Web 服务的大部分功能。

Windows Workflow Foundation 基本活动库包含 WebServiceInputActivity 和 WebServiceOutputActivity 活动,这些活动允许将工作流用作 Web 服务终结点。 有关使用这些 Web 服务活动的信息,请参见 使用 WebServiceInputActivity 活动和 使用 WebServiceOutputActivity 活动。

ASP.NET工作流 Web 承载

用于工作流 Web 承载的主要类包括:

WorkflowWebHostingModule

ManualWorkflowSchedulerService

WorkflowWebHostingModule

WorkflowWebHostingModule 类是默认的路由机制,用于通过使用 ASP.NET Cookie 将 Web 服务请求路由到相应的工作流。 当然,发出这些请求的客户端必须支持 Cookie。

虽然 Windows Workflow Foundation 提供此默认路由机制,但您可以实现自己的自定义路由机制。 例如,当不能在客户端中启用 Cookie 时,可以配置客户端创建具有特定 Id 的工作流实例,并在每个 Web 服务请求中传递该 Id。 可以使用 SOAP 或 HTTP 处理程序配置请求管线以截获调用,从标头信息中检索工作流实例 Id,然后将 HttpContext.Current.Items.Add("__WorkflowInstanceId__", workflowInstanceId) 设置为传入的 Id。

ManualWorkflowSchedulerService

ManualWorkflowSchedulerService 类是 WorkflowSchedulerService 的一个专用实现,它通过重用一个线程(该线程发出 ASP.NET Web 请求以运行工作流实例),对 ASP.NET 进程中生成的线程数进行控制。 这确保了工作流运行时中的活动线程数在任意时候都等于 ASP.NET 进程中的活动 Web 请求数。

公开为 Web 服务的ASP.NET工作流的限制

实例路由在 ASP.NET 会话的基础上工作。 作为 Web 服务的使用者,它需要支持 ASP.NET Cookie。

即使可以将“接收请求-发送响应”建模为工作流中的异步操作,ASP.NET 的常规限制仍适用于 Web 服务的使用者,即实例不能在未处理的请求-响应操作之间迁移进程。

启用 Cookie 以调用ASP.NET工作流 Web 服务

工作流 Web 服务使用 Cookie 跟踪状态。 如果将工作流发布为 Web 服务,则必须在调用它的客户端代码中启用 Cookie。 例如:

CalculatorWorkflow_WebService service = new CalculatorWorkflow_WebService();

service.CookieContainer = new System.Net.CookieContainer();

这使您可以对“service”对象进行方法调用。

【编辑推荐】

  1. ASP.NET工作流的创建与启动
  2. ASP.NET数据库连接类ClassConn以及oledb数据库连接方法
  3. ASP.NET数据库驱动类的实现:DBHelper
  4. 用C#写的ASP.NET数据库操作类
  5. ASP.NET数据库图片存储到Sql2000中
责任编辑:yangsai 来源: MSDN
相关推荐

2009-07-31 17:50:27

ASP.NET工作流

2009-07-31 17:34:40

ASP.NET工作流

2009-07-31 18:00:35

ASP.NET工作流学

2009-07-27 17:54:39

WCF服务ASP.NET

2009-07-27 14:33:51

ASP.NET调用存储

2009-07-24 16:05:05

调用Web ServiASP.NET

2009-08-05 16:59:38

ASP.NET调用Ex

2009-07-21 16:23:57

2009-07-22 17:45:35

ASP.NET教程

2009-07-28 17:17:19

ASP.NET概述

2009-08-03 14:22:33

什么是ASP.NET

2009-07-21 09:43:36

调用UpdatePanASP.NET

2009-07-20 17:59:07

JavaScript调ASP.NET AJA

2009-11-09 08:53:21

ASP.NET缓存

2009-08-03 12:40:46

ASP.NET编程模型

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入门教程

2011-09-20 09:41:29

.NET 4.5

2009-07-23 12:22:41

ASP.NET MVC

2022-10-26 08:00:43

Activiti工作流BPM

2021-10-14 11:34:05

技术工作流引擎
点赞
收藏

51CTO技术栈公众号