加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 工作流/工作流服务组合?如何在“正常”工作流程中使用接

发布时间:2020-12-15 21:53:54 所属栏目:百科 来源:网络整理
导读:我们目前正在尝试在我们的产品(.NET 4.5)中实现工作流功能.为此,我们考虑使用Microsoft Workflow Foundation 4.5.然而,在这个早期阶段,我们遇到了一个似乎非常可行的技术问题. 简单地说,这就是我们想要在客户端/服务器设置中实现的目标: 根据特定事件,服务
我们目前正在尝试在我们的产品(.NET 4.5)中实现工作流功能.为此,我们考虑使用Microsoft Workflow Foundation 4.5.然而,在这个早期阶段,我们遇到了一个似乎非常可行的技术问题.

简单地说,这就是我们想要在客户端/服务器设置中实现的目标:

>根据特定事件,服务器启动工作流程
>工作流执行一些操作,直到涉及需要人工交互的活动.然后它应该等待来自客户端的消息.
>一个客户端(有多个客户端)成为所有者,因此应将其唯一ID或地址发送到工作流程
>工作流向该客户端发送消息,指示它需要继续信息(例如,电子邮件参数,如收件人,主题和正文)
>几分钟后(可能是几分钟到几个小时),客户端将信息发送到工作流程,以便它可以继续(例如,发送电子邮件消息)
>如果需要另一个人工交互,服务器再次向客户端发送请求消息,以便它知道它应该询问用户信息,然后客户端再次向工作流发送消息(如上所述)

根据我的理解,“正常”工作流程没有端点来接收消息.另一方面,工作流服务可以,但是使用WF服务,工作流实例将根据传入的请求创建,而不是让服务器控制工作流的创建(对吗?).

在这一刻,在我看来,我们需要工作流和工作流服务的组合.

我一直在努力解决这个问题并且搜索高低,但找不到有用的信息.

我想我们有两个选择:

>工作流程服务;
如果我们使用工作流服务,我们可以在启动工作流的工作流的开头有一个Receive活动.但是,那么客户如何与特定的工作流程进行沟通?工作流服务具有一个特定URL.
>工作流程;
由服务器应用程序托管的正常工作流似乎是最自然的选择路径.但是,我们需要一种向其发送数据的方法.那么,是否可以升级正常的工作流程以便可以使用Receive活动?如果是这样,怎么样?消息如何在正确的工作流实例中结束?

我的问题是:
有没有人对如何解决上述问题有一些有用的指导或信息?
是否有有趣的替代品(不使用WF?)来实现这一目标?
有没有人有关于如何将WCF消息路由到WF中正确的工作流实例的文档?

PS:我们在客户端上提供WCF服务.工作流程可以与之通信.对于没有问题的短期运行请求,但事实是请求可能需要很长时间才能让客户“回答”它们.此外,如果用户点击了一个继续按钮,客户端只能请求该信息(由于服务器需要信息,用户不应该只是在某个中间弹出一个弹出窗口)

解决方法

是的,使用AppFabric的工作流服务是理想的,如果我正确理解您的问题,应该开箱即用.

对于您的问题“然而,那么客户如何与特定的工作流程进行沟通?”答案是相关性,你可以在第一个接收中轻松设置.您只需添加一个CorrelationHandle变量,并将传入参数(ownerid?)和CorrelatesWith的Receive’s CorrelatesOn设置为该句柄.对所有其他接收执行相同操作,并始终将传入消息路由到正确的实例.

AppFabric将帮助您的WF服务从内存中卸载并在空闲时间过长时保持不变,在新接收到时等等时唤醒.它还可以帮助您在IIS应用程序池中设置自动启动. WAS将根据传入请求激活您的工作流服务.

如果您需要进一步的具体细节,请告诉我.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读