我有一个模拟销售漏斗的 WF4 服务。它的工作原理是从“注册”接收呼叫开始。之后,有 10 个类似的阶段(每个阶段由 2 个接收组成)。在当前阶段验证接收到的数据之前,您无法超越一个阶段。我不确定的是,即使我的客户端应用程序不允许这样做,我怎样才能让我的工作流程阻止任何人无序调用接收操作?在我的测试控制台应用程序中,我让用户调用任何接收操作(只是因为我想看看会发生什么)。
例如,如果我先调用 Register,然后在“AddProspect”接收之前接收“AddQualification”,则测试应用程序会返回如下异常:
目前无法对标识符为“1984c927-402b-4fbb-acd4-edfe4f0d8fa4”的服务实例执行“AddQualification|{http://tempuri.org/}IZSalesFunnelService”操作。请确保以正确的顺序执行操作,并且使用中的绑定提供有序的交付保证
两件事来自于此,我不知道该怎么做:
首先,我如何处理错误异常以有意义的方式通知客户端并且......
其次,因为我正在使用持久性(和属性提升),所以当我进行无序调用时,提升的属性会卸载。客户收到异常后,他们不会再次升级。
有什么想法吗?