我有一个 BizTalk 2010 解决方案,它轮询数据库表、检索未处理的记录、使用地图进行转换并调用第 3 方服务。快乐的道路正在奏效。
这是工作流程:
- 从 GetUnprocessedCustomers 存储过程接收位置/端口:使用 WCF-SQL 适配器轮询 SQL Server 2008,方法是调用返回未处理客户的存储过程 (WHERE IsProcessed = 0)
- SendPort 到第 3 方 Web 服务:过滤到 ReceivePortName == 并带有出站映射,以将从上述存储过程返回的消息转换为服务模式
- SendPort 到 UpdateIsProcessed 存储过程:过滤到 MessageType == 并使用出站映射将服务响应转换为将更新 IsProcessed = 1 的存储过程调用。
我想捕获以下可能的异常,创建带有异常信息的消息并调用内部异常处理服务。
- 无法访问数据库或存储过程。
- 无法访问第三方服务。
通过启用失败的消息路由,我能够处理上面的第 2 个问题。感谢Greg.Forsythe。
我的问题是:如何创建一个通用解决方案来捕获所有异常并将异常信息(例如异常日期时间、消息、堆栈跟踪等)发送到内部服务?