BizTalk使用Consume SQL Adapter出现Action Polling无法识别错误如何解决
报错原因
- 你当前配置的是出站请求响应发送端口,但直接照搬了SQL入站接收端口的配置属性。
Polling是SQL适配器作为入站端轮询读取数据库数据的专属操作,完全不适用于出站调用数据库的场景,未手动配置出站Action时,BizTalk默认携带了入站的Polling动作,出站SQL适配器无法识别该操作类型,因此抛出异常。 - 通过Consume SQL Adapter生成的SQL操作架构中,每个出站操作(包括表操作、存储过程调用等)都有唯一对应的Action标识,未在发送端口配置对应Action时,适配器无法匹配你要执行的具体SQL操作,也会触发该类报错。
解决方案
- 找到你当初使用Consume Adapter Service生成SQL适配器相关文件时自动输出的绑定文件,或查看生成的WCF端口类型定义,提取你需要调用的SQL操作对应的Action值,常见格式如
Procedure/dbo/[你的存储过程名]、TableOp/Insert/dbo/[你的表名]等。 - 打开该WCF-Custom发送端口的配置界面,进入
sqlBinding绑定配置页,在Action文本框中填入上一步获取的正确Action值。如果单个发送端口需要适配多个操作,可使用Action映射格式:
注意要保证Operation节点的Name属性和Orchestration中对应端口的操作名完全一致。<BtsActionMapping> <Operation Name="你的Orchestration端口操作名" Action="对应SQL操作的Action值" /> <!-- 多个操作可新增多个Operation节点 --> </BtsActionMapping> - 清理发送端口中照搬的入站Polling相关配置,包括
PolledDataAvailableStatement、PollingInterval等入站专属配置项,无需在出站发送端口中配置。 - 重启对应发送端口和Orchestration实例,重新提交测试消息验证。
内容的提问来源于stack exchange,提问作者james treinen
相关产品推荐
相关产品推荐

