BizTalk自定义文件名提升接收管道部署后工具箱不可见等问题咨询
BizTalk自定义管道组件问题解答
一、工具箱看不到组件的排查与解决
- 必须注册到GAC:仅把组件复制到
C:\Program Files (x86)\Microsoft BizTalk Server 2016\Pipeline Components目录没用,需用命令gacutil -i 你的组件.dll将其安装到全局程序集缓存。 - 确认组件强签名:自定义组件必须是强命名的,构建时要配置.snk签名文件,没签名的组件没法注册到GAC,BizTalk也识别不了。
- 手动添加到工具箱:打开BizTalk项目后,右键工具箱的「Pipeline Components」分组,选「选择项」,在弹出窗口切换到「BizTalk Pipeline Components」标签,找到你的组件勾选后确定,就能在工具箱看到。
- 检查版本兼容性:确保组件是基于.NET Framework 4.6.2(BizTalk 2016对应版本)开发的,版本不匹配会导致加载失败。
二、是否需要修改管道?
只要组件代码逻辑没问题(核心是实现文件名提升),不需要修改管道。但要确认:
- 组件的
IPipelineComponent接口实现正确,Validate和Execute方法无错误。 - 要提升的属性配置正确,比如文件名属性对应命名空间
http://schemas.microsoft.com/BizTalk/2003/file-properties#FileName。
三、如何实现文件名提升的预期效果
- 完成上述注册和工具箱添加步骤后,新建自定义接收管道,把该组件拖入「Decode」或「Disassemble」阶段(看组件设计的对应阶段)。
- 在BizTalk管理控制台里,把接收位置的接收管道改成这个自定义管道,别用直通管道。
- 发送测试文件到接收位置,通过BizTalk跟踪工具查看消息上下文,确认
FileName属性已被提升。
四、直通接收时用自定义管道的原因
直通接收管道(PassThruReceive)只会原封不动把消息传到MessageBox,不会处理任何消息属性,自然不会自动提升文件名。如果后续流程需要根据文件名做路由、判断等操作,就必须用自定义管道组件来把文件名属性提升到消息上下文中。
内容的提问来源于stack exchange,提问作者Lubdha Dolas
相关产品推荐
相关产品推荐

