biztalk - Rest API BizTalk 2016 的 WCF-WebHttp 错误处理
问题描述
我有一个带有 POST 方法的休息 API,我在其中以 JSON 格式发布和接收成功响应,它工作得非常好。在失败期间我收到
错误详细信息:System.Net.WebException:远程服务器返回意外响应:(400)错误请求创建失败,因为名称或电子邮件地址无效
我在应用程序日志中看到并发送端口被暂停。如果收到任何错误响应,我需要在 BizTalk Orchestration 中捕获此内容,我需要在其中发送电子邮件。
由于错误响应不是 JSON 格式,不知道如何处理。任何的想法?
解决方案
- 为发送端口上的失败消息启用路由以停止挂起的消息。
ErrorReport.FailureCode Exists
如果您只想在 Orchestration 中处理这些,您可能必须更新订阅的发送端口中的过滤器以排除您的 API 发送端口。如果您没有这样的端口,您可能必须创建一个,并将失败的消息发送到 NULL 适配器或类似的。 - 让您的业务流程有一个带有异常块的范围来捕获系统异常,其中有
Exception = SystemException.ToString();
一个表达式形状,其中 Exception 是一个 System.String 变量,而 SystemException 是您在 Catch 块中定义的异常对象名称。 - 在你的 catch 块中有逻辑来决定你得到什么样的异常,我使用一个 If 形状,
Exception.Contains("XXXX")
其中 XXXX 是异常中的文本,或者根据你的需要处理它。
推荐阅读
- postgresql - 其他模式中的约束
- android - Android rxjava更改其他列表中的列表对象
- java - 除了 web.xml,您还可以在哪里告诉您的 Web 应用程序将请求映射到 servlet?
- presto - Presto 中的 LocalMemoryManager 和 ClusterMemoryManager 有什么区别?
- javascript - AJAX Javascript警报消息未显示在输入类型=“文件”上
- javascript - 基于以前的 url 路径 Javascript 重定向
- php - MySql - 获取需要在当前分钟内运行的任务
- android - 无法从导航抽屉打开活动
- java - 将所有 JAR 中的所有类加载到类路径
- mysql - 具有日期范围的 MySQL 查询优化