如何在BizTalk控制台中屏蔽API 404用户不存在的错误提示?
解决BizTalk中预期404错误的控制台记录问题
针对你遇到的场景,这里有几个可行的方案来处理预期的“用户不存在”404错误,避免其在BizTalk控制台生成错误记录,或重路由至文件:
方案1:使用错误处理规则重路由特定错误
这是最精准的方案,仅重路由符合条件的预期错误:
- 在BizTalk管理控制台中,为你的应用创建一个文件发送端口,指定目标目录用于存储重路由的错误消息。
- 导航到
BizTalk组 > 应用程序 > 你的应用程序 > 规则 > 错误处理规则,新建一条规则:- 条件配置:设置过滤逻辑匹配预期错误,示例条件(根据实际错误字段调整):
ErrorReport.ErrorType == "FailedMessage" AND ErrorReport.SendingPortName == "你的用户存在检查发送端口名称" AND ErrorReport.ErrorCode == "404" AND ErrorReport.Description LIKE "%用户不存在%" - 操作配置:选择「重路由消息」,将目标设置为你创建的文件发送端口。
- 条件配置:设置过滤逻辑匹配预期错误,示例条件(根据实际错误字段调整):
- 启用该规则后,符合条件的404错误会被自动路由到指定文件目录,不会出现在控制台错误列表中。
方案2:在发送端口配置中忽略特定HTTP状态码
如果该发送端口返回的404均为预期场景,可直接在适配器配置中忽略404错误:
- 打开目标发送端口的属性,切换到「传输」选项卡,点击「配置」按钮:
- WCF适配器:在「绑定」配置的「行为」中添加
ErrorHandlerBehavior,或在「消息」选项卡勾选「忽略HTTP错误状态码」并添加404; - 旧HTTP适配器:在配置界面找到「HTTP错误处理」,勾选「忽略特定HTTP状态码」并添加404。
- WCF适配器:在「绑定」配置的「行为」中添加
- 保存配置后,该端口返回的404错误将不会被BizTalk记录为控制台错误。
方案3:编排+端口属性结合过滤
通过编排标记预期错误,配合端口筛选避免错误记录:
- 在编排的异常捕获块中,当捕获到“用户不存在”的404错误时,为消息添加一个自定义上下文属性(如
IsExpectedError),并将其值设为True; - 打开发送端口的属性,在「筛选」选项卡中添加条件:
IsExpectedError != True,确保只有非预期错误才会被错误处理机制捕获; - 可选:在发送端口的「传递选项」中勾选「Suppress Message On Failure」,进一步避免预期错误的记录(需配合筛选条件,防止忽略所有错误)。
注意事项
- 先通过BizTalk跟踪查看错误消息的
ErrorReport上下文字段,确保过滤条件的准确性,避免误过滤真正的异常; - 重路由的文件需定期清理,防止磁盘空间溢出;
- 若使用WCF适配器,需确保绑定配置中启用了
IncludeExceptionDetailInFaults,以便正确捕获错误描述信息。
内容的提问来源于stack exchange,提问作者krabople
相关产品推荐
相关产品推荐

