- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个模拟销售漏斗的 WF4 服务。它的工作原理是从“注册”接听电话开始。之后,有 10 个类似的阶段(每个阶段包含 2 个接收)。在当前阶段验证接收到的数据之前,您不能前进到一个阶段。但我不确定的是,即使我的客户端应用程序不允许这样做,我怎样才能让我的工作流程防止任何人乱序调用接收操作?在我的测试控制台应用程序中,我让用户调用任何接收操作(只是因为我想看看会发生什么)。
例如,如果我先调用 Register,然后在“AddProspect”接收之前调用“AddQualification”,则测试应用会返回异常,如下所示:
Operation 'AddQualification|{http://tempuri.org/}IZSalesFunnelService' on service instance with identifier '1984c927-402b-4fbb-acd4-edfe4f0d8fa4' cannot be performed at this time. Please ensure that the operations are performed in the correct order and that the binding in use provides ordered delivery guarantees
我不知道该怎么做的 2 件事:
首先,我如何处理故障异常以有意义的方式通知客户端并...
其次,因为我正在使用持久性(和属性提升),所以当我进行乱序调用时,提升的属性会卸载。客户端获得异常后,它们不会再次提升。
有什么想法吗?
最佳答案
抱歉,我的服务器有点忙,所以博客暂时停止播放。
关于你的第二个问题,你需要确保你的工作流服务设置为放弃未处理的异常。这是此设置的 AppFabric 的 doco:
放弃。服务主机中止内存中的工作流服务实例。数据库中实例的状态保持为“事件”。工作流管理服务从保存在持久性数据库中的最后一个持久性点恢复被放弃的工作流实例。
放弃和暂停。服务主机中止内存中的工作流服务实例,并将持久性数据库中实例的状态设置为“暂停”。稍后可以使用 IIS 管理器恢复或终止暂停的实例。这些实例不会由工作流管理服务自动恢复。
终止。服务宿主中止内存中的工作流服务实例,并设置实例在持久化数据库中的状态为“完成(终止)”。已终止的实例以后无法恢复。
取消。服务宿主取消工作流服务实例,导致调用所有取消处理程序,以便工作流以优雅的方式终止,并将持久性数据库中实例的状态设置为“已完成(取消)”。
放弃是唯一会在持久性存储中保留您的工作流的设置,以便您可以再次调用它。
希望这对您有所帮助。
关于wcf - 如何处理乱序调用的 "Receive"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5121229/
我是一名优秀的程序员,十分优秀!