如何处理无序拨打的“接听”电话?

2024-04-12

我有一个模拟销售漏斗的 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

有两件事我不知道该怎么做:

首先,我如何处理故障异常以有意义的方式通知客户端并且......

其次,因为我正在使用持久性(和属性提升),所以当我进行无序调用时,提升的属性将被卸载。客户获得例外后,他们不会再次晋升。

有什么想法吗?


抱歉,我的服务器有点繁忙,所以博客暂时停止播放。

关于第二个问题,您需要确保将工作流服务设置为“放弃”以处理未处理的异常。以下是用于此设置的 AppFabric 的文档:


放弃。服务主机中止内存中的工作流服务实例。数据库中实例的状态保持“活动”。工作流管理服务从持久性数据库中保存的最后一个持久性点恢复废弃的工作流实例。

放弃并暂停。服务主机中止内存中的工作流服务实例,并将持久性数据库中的实例状态设置为“挂起”。稍后可以使用 IIS 管理器恢复或终止挂起的实例。工作流管理服务不会自动恢复这些实例。

终止。服务主机中止内存中的工作流服务实例,并将持久性数据库中的实例状态设置为“已完成(终止)”。已终止的实例稍后无法恢复。

取消。服务主机取消工作流服务实例,导致调用所有取消处理程序,以便工作流以优雅的方式终止,并将持久性数据库中的实例状态设置为“已完成(已取消)”。


放弃是唯一将您的工作流程保留在持久性存储中的设置,以便您可以再次调用它。

希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何处理无序拨打的“接听”电话? 的相关文章

  • 如何编写长时间运行的活动来调用 WF 4.0 中的 Web 服务

    我创建了一个执行 Web 请求并将结果存储到数据库中的活动 我发现对于这些长时间运行的活动 我应该编写一些不同的代码 以便工作流引擎线程不会被阻塞 public sealed class WebSaveActivity NativeActi
  • WCF 服务 - 自定义主体

    在 WCF 服务类的构造函数中 我将当前主体设置为消息头中传递的主体的主体 Thread CurrentPrincipal OperationContext Current IncomingMessageHeaders GetHeader
  • wcf json网络服务

    创建 JSON Web 服务的最佳方法是什么 我们还有另一个使用 Java 的团队 他们坚持使用 JSON 完成所有通信 我更喜欢使用 WCF 而不是任何第三方框架 我找到了这个博客 http www west wind com weblo
  • jquery ajax“发布”调用

    我是 jQuery 和 Ajax 的新手 并且在 发布 方面遇到问题 我正在使用 jQuery Ajax post 调用将数据保存到数据库 当我尝试保存数据时 它将 null 传递给我的 C 方法 jQuery 看起来像这样 functio
  • WF 和分层状态机

    搜索 bing 和 google 我发现了一些关于与 Windows 工作流程相关的状态图的信息 但令人惊讶的是很少 我得出的唯一明确的答案是 是的 它可以处理状态图 这里有一个教程 但我想确定的是 Does it support hier
  • 可能有相同的合同,相同的绑定,相同的地址,但不同的端口?

    我有需要通过 basicHTTPBinding 进行通信的手持设备 我有合同 一切都按照广告进行 我需要扩展它以轻松支持测试环境 培训 当然还有生产的更改 我选择了端口路线 认为我可以公开具有端口差异的不同端点 并根据端口决定我想要来自哪个
  • System.IO.IOException:由于意外>数据包格式,握手失败?

    有谁知道这意味着什么 System Net WebException 底层连接已关闭 发送时发生意外错误 gt System IO IOException 由于意外 握手失败 数据包格式 在 System Net Security SslS
  • WCF - AsyncPattern=true 或 IsOneWay=true

    我的 WCF 服务中很少有方法需要花费大量时间 生成报告和发送电子邮件 根据目前的要求 要求客户端应用程序只需提交请求 然后不等待整个过程完成 它将允许用户继续在客户端应用程序中执行其他操作 而不是等待整个过程完成 我很困惑该走哪条路 As
  • 使用 ELMAH 记录 WCF 服务的异常

    我们正在使用优秀的ELMAH http code google com p elmah处理 ASP NET 3 5 Web 应用程序中未处理的异常 这对于除使用 REST 功能使用的 WCF 服务之外的所有站点都非常有效 当操作方法中发生应
  • WCF 与 .Net 远程处理

    根据本文 http msdn microsoft com en us library bb310550 aspx 带有命名管道的WCF是IPC的最佳选择 它比 Net Remoting快25 左右 我有以下代码 将 WCF 与命名管道与 N
  • WCF 仅跟踪失败的请求?

    我想将跟踪信息保存到 svclog 文件中 但仅限于失败的请求 这可能吗 如果是这样 具体如何 我有一个每分钟调用数百次的 WCF 服务 在极少数情况下 客户端会收到错误 500 该错误发生在 WCF 内运行的代码边界之外 通常是安全问题
  • 如何配置 WebService 返回 ArrayList 而不是 Array?

    我有一个在 jax ws 上实现的 java Web 服务 此 Web 服务返回用户的通用列表 它运行得很好 Stateless name AdminToolSessionEJB RemoteBinding jndiBinding Admi
  • 如何将对象列表发送到 WCF 服务?

    我正在构建 WCF 服务 我想接受 List 作为我的方法之一的参数 这是我的代码 ServiceContract public interface IProductService OperationContract int InsertP
  • 为什么处置/关闭 WCF 客户端代理很重要

    我听说即使在以下情况下也必须处置 或关闭 WCF 客户端代理 你没有使用会话 没有需要确定性清理的非托管资源 例如打开的套接字 例如 当使用具有默认绑定配置的 BasicHttpBinding 时 即使在流行的网页中也应该没问题 对吧 va
  • 为 Rest Web 服务创建 WCF 代理

    我有一个复杂的 WCF Rest 服务 它需要多个输入和对象 我不能简单地通过在 Fiddler 中执行 HTTP POST 来调用它 因为要提供的数据太多 我可以 但这将花费我很长时间 所以我想使用代理在代码中完成它 有没有办法为 NET
  • WCF 服务支持文件 jsdebug 无法加载

    我有一个从客户端 JavaScript 调用的 WCF 服务 调用失败并出现 Service is null JavaScript 错误 WebDevelopment 帮助程序跟踪显示加载 jsdebug 支持文件的调用会导致 404 文件
  • 堆内存问题

    有一个 WCF 自托管服务必须在 99 的时间内正常工作 有时我们会遇到这样的记忆问题 但问题发生后 服务一切正常 我们该如何处理这个问题 任何关于提供能够在不同情况下生存的强大服务的提示和要点都非常受欢迎 我不太确定问题出在哪里 但内存泄
  • 如何在没有 ServiceHost 类的情况下使用 WCF 创建简单的 Web 服务器?

    我已经开始学习 WCF 并希望通过直接使用通道堆栈创建一个简单的 Web 服务器来了解其内部结构 我在网络上找到了很多理论 但我希望看到一个接收和响应 httprequest 的工作示例代码 我可以使用任何浏览器进行测试 我希望能够通过组装
  • 为什么我会从 WSDL 调用中得到 System.InvalidOperationException,但不会从对另一个服务的同一调用中得到 System.InvalidOperationException?

    我创建了服务来获取各个客户的国家 地区详细信息 但是在托管该服务时我遇到了此异常 我正在使用基本的 http 绑定 An ExceptionDetail likely created by IncludeExceptionDetailInF
  • 反序列化 HTTP POST 参数

    我正在尝试找到一种更原生或更优雅的解决方案 用于将 HTTP POST 参数反序列化为相应的对象 目前 我将字符串转换为字典 然后将其序列化为 JSON 然后将其反序列化为我的最终对象 参数字符串示例 TotalCost 0 01200 D

随机推荐

  • 如何在手机SD卡或其他位置搜索文件

    我想搜索用户移动设备上具有特定扩展名的文件 我尝试搜索但找不到任何直接的 API 是否有特定的 API 或者是否有实现相同目的的繁琐方法 或者是否有一种机制可以调用 linux 调用 find 或类似的东西 Thanks boolean i
  • 使用 Flask 代理到另一个 Web 服务

    我想将对 Flask 应用程序发出的请求代理到计算机上本地运行的另一个 Web 服务 我宁愿使用 Flask 而不是更高级别的 nginx 实例 这样我们就可以重用应用程序中内置的现有身份验证系统 我们越能保持这种 单点登录 越好 是否有现
  • 我可以改变传递给 setState 函数的状态吗?

    我知道我不应该直接在 React 中改变状态 但是当我使用函数时情况如何 onSocialClick e gt const id e target value this setState prevState props gt prevSta
  • 以编程方式在 WooCommerce 中创建多个优惠券

    我一直在寻找一种向 WooCommerce 批量添加优惠券的方法 它实际上是一个包含 800 个会员号码的列表 可以提供折扣 而优惠券似乎是实现此目的的最佳方式 我找到了一种以编程方式添加单张优惠券的方法 http docs woothem
  • Pycharm的终端不会更改Project Interpreter处Python版本对应的Python版本

    我已经安装了 PyCharm 2016 3 并在 Windows 上安装了两个版本的 Python 3 5 2 和 2 7 9 我想使用这两个版本 因此我在 项目解释器 窗口中对其进行了配置 我选择的是3 5 2版本如下图 之后我打开Pyt
  • 在 Meteor 应用程序中使用 Disqus / reCaptcha

    我正在开发一个使用 Meteor 的应用程序 我正在尝试在我的其中一个表单上使用 reCaptcha 并在我的某些页面上使用 Disqus 评论系统 但问题是 当我运行流星服务器时 这些都没有被渲染 以下是我添加到模板中的示例 Disqus
  • 如何结合 websockets 和 http 来创建一个保持数据最新的 REST API? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在考虑使用 websockets 和 http 构建一个 REST API 其中我使用 websockets 告诉客户端新数据可用或直接向客
  • 根据连续值之间的差异将列表拆分为子列表

    我有一个值列表 其中每个值至少有一个 但通常是多个 连续值 且增量为 0 033 l 26 051 26 084 26 117 26 15 26 183 31 146 31 183 34 477 34 51 34 543 我想将此列表拆分为
  • Java事件派发线程讲解

    我最近开始学习和探索 Java 中 GUI 编程的基础知识 编程已经有一段时间了 我只做过后端工作或工作 因此我最接近的用户界面是命令控制台 我知道这很尴尬 我正在使用 Swing 据我所知 这意味着我也在使用 AWT 我的问题是基于这段代
  • MySQL SELECT 中的条件 SELECT

    Table id price is active 1 20 99 0 2 10 99 1 3 30 99 0 4 15 99 1 5 35 99 1 我试图选择 is active 等于 1 的所有行的 COUNT 所以我使用了这个简单的查
  • 如何在Python中的多类分类问题上获取每个类的SHAP值

    我有以下数据框 import pandas as pd import random import xgboost import shap foo pd DataFrame id 1 2 3 4 5 6 7 8 9 10 var1 rando
  • 在 .ts 文件中使用 ngx-translate

    我想在侧菜单标题中使用翻译 我读过本教程 https ionicthemes com tutorials about internationalize and localize your ionic2 app with ngtranslat
  • 添加填充到谷歌地图bounds.contains()

    我有一个侧边栏 显示谷歌地图当前地图视图中的标记名称 侧边栏内容随着地图的移动而变化 google maps event addListener map bounds changed function document getElement
  • 相对路径如何在 Access 2007 中指定链接表?

    我有一个 Access 数据库的前端和后端 前端引用链接表 我需要进行相对链接而不是显式链接 即 database 被引用而不是 address database 是否可以这样做 或者我必须指定绝对路径 我已经尝试过上面的一些答案 尤其是马
  • 在 IE 8 中加速“:not”jQuery CSS 选择器?

    我在 IE 中遇到性能问题 并且正在执行一个包含以下选择器的大循环 td not some cell 在 IE 中是否有更有效的方法来做到这一点 IE8不支持 not选择器本身 所以如果您使用像 jQuery 内置的 Sizzle 这样的纯
  • 基于 Rails cookie 的会话:将会话范围与过期时间混合

    所以我以不同的方式问了这个问题here https stackoverflow com questions 14712968 session expiration not working in rails 14713390 14713390
  • 冒泡排序中的预期交换次数[重复]

    这个问题在这里已经有答案了 可能的重复 冒泡排序中的交换次数 https stackoverflow com questions 11331314 number of swaps in bubble sort 问题简述如下 给定一个数组 A
  • 调用网页的任务计划尽可能简单

    我有一个网页 它进行一些数据库更新 例如http www mysite com updates asp http www mysite com updates asp 我希望每天 09 00 自动调用此页面 我知道如何在IIS中安排任务 但
  • Azure AAD - 受众无效

    我创建了一个使用 azure Active Directory 保护的 Web api 我现在需要对此进行测试并尝试将 fiddler 与授权标头一起使用 我正在尝试使用以下代码生成令牌 Target obj Target cmbTarge
  • 如何处理无序拨打的“接听”电话?

    我有一个模拟销售漏斗的 WF4 服务 它的工作原理是从 注册 接收呼叫开始 之后 有 10 个类似的阶段 每个阶段包含 2 个接收 在当前阶段验证收到的数据之前 您无法前进到某个阶段 但我不确定的是 即使我的客户端应用程序不允许这样做 我怎