
简单地说,这就是我们想要在客户端/服务器设置中实现的目标:
>根据特定事件,服务器启动工作流程
>工作流执行一些 *** 作,直到涉及需要人工交互的活动.然后它应该等待来自客户端的消息.
>一个客户端(有多个客户端)成为所有者,因此应将其唯一ID或地址发送到工作流程
>工作流向该客户端发送消息,指示它需要继续信息(例如,电子邮件参数,如收件人,主题和正文)
>几分钟后(可能是几分钟到几个小时),客户端将信息发送到工作流程,以便它可以继续(例如,发送电子邮件消息)
>如果需要另一个人工交互,服务器再次向客户端发送请求消息,以便它知道它应该询问用户信息,然后客户端再次向工作流发送消息(如上所述)
根据我的理解,“正常”工作流程没有端点来接收消息.另一方面,工作流服务可以,但是使用WF服务,工作流实例将根据传入的请求创建,而不是让服务器控制工作流的创建(对吗?).
在这一刻,在我看来,我们需要工作流和工作流服务的组合.
我一直在努力解决这个问题并且搜索高低,但找不到有用的信息.
我想我们有两个选择:
>工作流程服务;
如果我们使用工作流服务,我们可以在启动工作流的工作流的开头有一个Receive活动.但是,那么客户如何与特定的工作流程进行沟通?工作流服务具有一个特定URL.
>工作流程;
由服务器应用程序托管的正常工作流似乎是最自然的选择路径.但是,我们需要一种向其发送数据的方法.那么,是否可以升级正常的工作流程以便可以使用Receive活动?如果是这样,怎么样?消息如何在正确的工作流实例中结束?
我的问题是:
有没有人对如何解决上述问题有一些有用的指导或信息?
是否有有趣的替代品(不使用WF?)来实现这一目标?
有没有人有关于如何将WCF消息路由到WF中正确的工作流实例的文档?
PS:我们在客户端上提供WCF服务.工作流程可以与之通信.对于没有问题的短期运行请求,但事实是请求可能需要很长时间才能让客户“回答”它们.此外,如果用户点击了一个继续按钮,客户端只能请求该信息(由于服务器需要信息,用户不应该只是在某个中间d出一个d出窗口)
解决方法 是的,使用AppFabric的工作流服务是理想的,如果我正确理解您的问题,应该开箱即用.对于您的问题“然而,那么客户如何与特定的工作流程进行沟通?”答案是相关性,你可以在第一个接收中轻松设置.您只需添加一个CorrelationHandle变量,并将传入参数(ownerID?)和CorrelatesWith的Receive’s CorrelatesOn设置为该句柄.对所有其他接收执行相同 *** 作,并始终将传入消息路由到正确的实例.
AppFabric将帮助您的WF服务从内存中卸载并在空闲时间过长时保持不变,在新接收到时等等时唤醒.它还可以帮助您在IIS应用程序池中设置自动启动. WAS将根据传入请求激活您的工作流服务.
如果您需要进一步的具体细节,请告诉我.
总结以上是内存溢出为你收集整理的c# – 工作流/工作流服务组合?如何在“正常”工作流程中使用接收活动?全部内容,希望文章能够帮你解决c# – 工作流/工作流服务组合?如何在“正常”工作流程中使用接收活动?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)