2010-09-01 123 views
0

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

我在我的工作流服务项目中创建了一个项目引用到其他程序集中的工作流。

我已经在工作流服务接收活动中设置了一个断点,并且该断点被命中。

接下来,我介绍下一个活动,它是位于另一个项目中的活动,并且调试器不起作用。

另一个工作流程是发送电子邮件。看起来其他工作流程没有被调用,因为我从来没有收到来自另一个项目工作流程的电子邮件。

任何帮助,非常感谢。

这个问题很容易重现在Visual Studio 2010

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

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

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

4.)在工作流服务项目中,将项目引用添加到活动库项目中。

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

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

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

请提出建议。

回答

0

我已经想出了解决问题的办法!

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

这里是我做过什么来解决这个问题:

1)我删除ReceiveRequest和SendResponse活动。

2.)我添加了一个接收活动并将CanCreateInstance属性设置为True。

3。)我在接收活动之后从位于另一个项目中的ActivityLibrary添加了Activity。

好价钱!现在起作用了。

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

相关问题