WCF 第十一章 工作流服务 总结
2011-04-14 17:34 DanielWise 阅读(1073) 评论(0) 编辑 收藏 举报Windows Workflow Foundation(Windows 工作流基础,WF)是WCF 的补充技术。由WCF定义并实现一个服务的接口,WF负责对这个服务的商业逻辑进行模型化处理以及实现。Visual Studio 2008 和.NET 3.5 提供了二者更深层次的集成。
为了从WF调用服务,你可以使用一个发送活动,代码活动或者一个自定义活动。发送活动要求至少有代码但是一个自定义活动是目前为止最具可扩展性的选项。
接收活动在WF设计器中用来将一个工作流以服务形式暴露出来。在它配置好以后,WF为这个服务定义一个[ServiceContract]同时为每个接收活动定义一个[OperationContract](这个意思是说WCF 的服务还是以前的服务,但是WCF服务中的操作变成了WF的接收活动)。你可以通过导入的代理指定接收活动或者直接将其添加到工程中,或者你可以使用一个WF设计器定义接口。接收活动绑定WF变量到服务操作上。使用WF设计器,你可以选择或者创建WF范围内的变量来绑定到这个操作中的每个输入变量。
WF类,WorkflowServiceHost,用来实例化WF运行时。这个类用来为服务开启的工作流替代ServiceHost(在WCF中,使用ServiceHost寄宿服务,而在WF中,使用WorkflowServiceHost 寄宿服务).这个类必须在自我寄宿时使用。当在IIS中寄宿时,必须在SVC文件中确定一个工厂类来实现同样的结果。
当暴露一个服务开启工作流时必须使用上下文绑定中的一个: basicHttpContextBinding, wsHttpContextBinding或者netTcpContextBinding.这些绑定使用上下文信道元素,它们向信道中添加上下文信息。你也可以把这个信道元素添加到自定义信道中。已有的工作流的相关入列消息要求上下文信息。
很多对商业过程建模的工作流程序必须运行数天,数周或者数月,在这个期间客户端可能掉线,服务可能被回收,或者网络也挂了。为了支持这些过程的长时间运行特性。一个持续性服务是必须的。当一个工作流实例空闲时,或者当运行时关闭时,持续性服务保存状态,或者将其”脱水”到持久性存储设备上。当WF从一个脱水的实例接收一条消息时,WF将其从持续性服务中”加水”恢复。
注: 关于“脱水”和“加水” 可以联想木耳,湿木耳晒干后可以长期存储,等到要吃的时候,再用水泡开,这样干木耳又恢复到之前的样子了。
作者:DanielWise
出处:http://www.cnblogs.com/danielWise/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述