我创建了一个示例工作流服务。我在无序调用它时遇到问题。以下所有接收活动具有相同的相关性。当工作流在GetData()上启动并且客户端尝试调用第4或第3个接收活动时,它会导致超时。我本以期待抛出一个
操作 '四| {http://tempuri.org/} IService' 在带有标识符的服务实例上 '04e7f5aa-5e01-47ac-8a6e-b20492c5ac19' 此时无法执行。 请确保操作 以正确的顺序执行 使用中的绑定提供 有序交货保证。
但是当我移出第二个接收活动并删除包含延迟的选择时,它工作正常并抛出预期结果。
投掷超时:
工作:
谢谢, - 罗纳德
答案 0 :(得分:0)
问题是由使用Receive和Delay活动组合时处理消息的方式引起的。基本上,只要您开始向混合添加延迟活动,工作流调度程序就会保留它无法处理的任何传入WCF消息,因为它假定它可能在Delay到期时能够处理。不完全是你在这些情况下寻找的行为,但就是这样。
现在最好的解决方法是不使用延迟活动,而是使用某些外部服务的Receive活动,该服务在过期时发送超时请求。