BizTalk接收管道故障:如何用原生功能生成日志文件?
基于BizTalk原生功能处理格式错误消息的方案
核心思路
利用BizTalk原生的错误路由和文件适配器功能,无需自定义组件即可实现错误数据的捕获与存储。
具体步骤
1. 配置接收端口的错误处理
- 打开BizTalk管理控制台,找到目标接收端口并进入属性设置。
- 在错误处理选项卡中,勾选「启用路由失败消息」。
- 确认「失败消息路由属性」已启用,确保
ErrorDescription、ErrorDetails、OriginalMessageContent等关键错误属性被保留,这些属性将用于生成错误文本文件。
2. 选择错误消息架构(可选但推荐)
- 可直接使用BizTalk内置的
Microsoft.BizTalk.DefaultPipelines.ErrorReport架构,该架构已预定义所有错误相关字段(错误代码、描述、原始消息等),无需自行创建。
3. 创建并配置错误消息发送端口
- 新建发送端口,适配器选择文件适配器,目标文件夹设为你指定的路径。
- 在发送端口的筛选器中添加以下条件:
ErrorReport.ErrorType == FailedMessage:匹配接收管道处理失败的消息BTS.ReceivePortName == [你的接收端口名称](可选):仅捕获特定接收端口的错误
4. 配置发送管道生成TXT文件
- 若只需保存原始错误内容:发送管道选择
PassThruTransmit,并在发送端口属性中设置输出文件扩展名为.txt。 - 若需格式化错误内容为易读文本:
- 创建映射,将
ErrorReport架构的字段映射为纯文本格式(例如:错误代码: {ErrorReport.ErrorCode}\n错误描述: {ErrorReport.ErrorDescription}\n原始消息: {ErrorReport.OriginalMessageContent}) - 发送管道选择
XMLTransmit并关联该映射,设置输出文件扩展名为.txt。
- 创建映射,将
5. 测试验证
- 传入格式错误的固定位置文本文件,检查指定文件夹是否生成对应TXT文件,内容是否包含错误代码、描述及原始消息。
- 确认挂起的服务实例已触发错误路由,无未处理的失败消息堆积。
关键注意事项
- 确保BizTalk主机拥有目标文件夹的读写权限,否则发送端口会出现挂起。
- 若无需保留原始消息,可在接收端口错误处理设置中取消勾选「保留原始消息」,减少存储占用。
FlatFileReceive管道处理固定位置文本文件时,会自动生成包含详细格式错误信息的失败消息,无需额外配置。
内容的提问来源于stack exchange,提问作者Hardik
相关产品推荐
相关产品推荐

