本文适用于以下产品:
- Microsoft BizTalk Adapter Pack 2.0
- Microsoft BizTalk Adapter Pack 2010
- 适用于 SQL Server 的基于 WCF 的独立 BizTalk Adapter
症状
请考虑以下情形:
请创建一个发送端口,它使用 Windows Communication Foundation (基于 WCF) 的 SQL 适配器来调用在 Microsoft SQL Server 表的列中插入行的存储过程。 表的列不能存储 NULL 值。
注意:Microsoft BizTalk Adapter Pack 2010 中包含基于 WCF 的 SQL 适配器。
到达发送端口的输入消息具有空元素。
例如,消息具有 <ns0:input></ns0:input> 或 <ns0:input/> 空元素。
在此方案中,类似于以下内容的错误消息将记录在应用程序日志中:
注意
在发送端口“send port>”<上发送到适配器“WCF-SQL”且 URI 为“mssql:// URI<”>的消息已挂起。
错误详细信息:System.Data.SqlClient.SqlException (0x80131904) :无法将值 NULL 插入到列“<列名称>”、表“表>”<中;列不允许空值。 插入失败。
该声明已终止。
如果表的列可以存储 NULL 值,则会错误地将 NULL 值插入到表的列中。
便笺
- 如果发送端口调用表操作而不是存储过程来在表的列中插入行,则不会发生此问题。
- 空元素的正确值是空字符串。
解决方法
累积更新信息
BizTalk Adapter Pack 2009
解决此问题的修补程序包含在 BizTalk Adapter Pack 2.0 的累积更新程序包 4 中。 有关如何获取累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2604327 适用于 BizTalk Adapter Pack 2.0 的累积更新包 4
BizTalk Adapter Pack 2010
解决此问题的修补程序包含在 BizTalk Adapter Pack 2010 的累积更新包 2 中。
有关如何获取累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2572999 适用于 BizTalk Adapter Pack 2010 的累积更新程序包 2
状态
Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。
参考资料
有关 BizTalk Server 的 Service Pack 和累积更新列表的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2555976 BizTalk Server 的 Service Pack 和累积更新列表 有关BizTalk Server修补程序的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2003907 有关BizTalk Server修补程序的信息