Workflow Service不在另一个项目中调用工作流

时间:2010-09-01 16:04:42

标签: workflow-foundation

我有一个Windows工作流服务4.0,它调用位于另一个项目(即另一个程序集)中的工作流程。

我已将工作流服务项目中的项目引用创建到另一个程序集中的工作流程。

我在工作流服务接收活动中设置了断点,并且此断点被命中。

接下来,我将进入下一个活动,该活动是位于另一个项目中的活动,调试器不起作用。

另一个工作流程是发送电子邮件。似乎没有调用其他工作流,因为我从未收到其他项目中工作流的电子邮件。

非常感谢任何帮助。

此问题在Visual Studio 2010中很容易重现。

1。)创建一个新的WCF工作流服务应用程序项目并保存解决方案。

2.。)将新的活动库添加到解决方案中。

3.)在活动库中,转到工具箱并添加序列活动。添加写入事件日志的代码活动。编译活动库,并从工具箱中添加代码活动,将对Windows事件日志的写入添加到序列活动中。

4.。)在工作流服务项目中,向Activity库项目添加项目引用。

5.)在工作流服务项目中,在ReceiveRequest活动和活动库工作流活动之后。

6。)在workflowservice项目ReceiveRequest活动中设置断点,并在活动库代码活动行中设置另一个写入事件日志的断点。

7.运行调试器,您将看到活动库断点永远不会被命中,如果您在没有调试器的情况下运行,活动库将永远不会被执行(您可以检查Windows事件日志以确认活动库从未执行过。)

请告知决议。

1 个答案:

答案 0 :(得分:0)

我已经找到问题的解决方案了!

问题是你不能只删除SendResponse活动(使其成为“One-Way”Fire和Forget)并在ReceiveRequest Activity之后添加位于另一个项目中的ActivityLibrary活动。您需要删除ReceiveRequest活动并删除SendResponse活动,并将ReceiveRequest活动替换为Receive活动,以使其成为“单向”。

以下是我为解决问题所做的工作:

1。)我删除了ReceiveRequest和SendResponse活动。

2.)我添加了一个Receive Activity并将CanCreateInstance属性设置为True。

3.)我在Receive Activity之后添加了位于另一个项目中的ActivityLibrary的Activity。

很划算!它现在有效。

Leo Cono - http://www.PeopleFriends.com