0

在我的 Workflow Foundation 4.0 RC 应用程序中,我有一个“Receive”和“SendReplyToReceive”WCF 消息传递对,可以通过简单的请求/响应操作正常工作,但我在尝试对请求执行验证并回复错误时遇到了麻烦。

在 WCF 中,我能够创建一个 throw 自定义错误协定(它反过来发出 SOAP 错误),但我只是看不到如何使用内置的工作流消息传递活动来实现这一点。

我似乎只能用数据传输对象来响应(我什至无法选择对象来响应)。

有任何想法吗?(你能再次拯救我的一天吗?莫里斯!?)

谢谢!

4

1 回答 1

2

事实证明这是可以做到的,但并不像我希望的那样容易被发现。如果 Matt Milner 和 Dave Cliffe 没有向我展示它是如何工作的,我想我不会发现这一点。

诀窍是为相同的 Receive 活动添加第二个 SendReply。第二个 SendReply 返回一个 FaultException 类型的变量,其目的是帮助定义正确的操作契约。

当发生错误时,要么像通常杀死工作流一样抛出 FaultException,要么返回故障并保持工作流完好无损,现在客户端将看到它。

更新:查看此文档以获取新的白皮书“如何在工作流服务中发送和接收故障”。也可以在这里查看我的博文。

于 2010-03-18T20:31:31.907 回答