本文适用于以下产品:
-
Microsoft BizTalk 适配器包 2.0
-
Microsoft BizTalk 适配器包 2010
-
SQL Server 的独立的基于 WCF 的 BizTalk 适配器
症状
请考虑以下情况:
-
创建发送端口使用基于 Windows 的通信基础 WCF 的 SQL 适配器调用的存储的过程,Microsoft SQL Server 表的列中插入行。 表的列不能存储 NULL 值。注意 基于 WCF 的 SQL 适配器包含在 Microsoft BizTalk 适配器包 2010年。
-
到达该发送端口输入的消息包含空元素。例如,该消息具有< ns0:input >< / ns0:input >或< ns0:input / >空元素。
在这种情况下,应用程序日志中记录类似于以下内容的错误消息:
消息发送到适配器"WCF SQL"发送端口"< 发送端口 >"URI"mssql: / / < URI >"被挂起。 错误详细信息: System.Data.SqlClient.SqlException (0x80131904): 不能将空值插入列 < 列名称 >,表 < 表名称 >;列不允许空值。 插入将会失败。语句已终止。
如果表的列可以存储 NULL 值,错误表的列中插入 NULL 值。注意
-
如果发送端口调用表操作,而不是表的列中插入的行的存储过程,不会出现此问题。
-
空元素的正确值就为空字符串。
解决方案
累积更新信息
BizTalk 适配器包 2009
可以解决此问题的修复程序包括在累积更新包 4 BizTalk 适配器包 2.0 中。 有关如何获取此更新累积程序包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 2604327累积更新包 4 BizTalk 适配器包 2.0
BizTalk 适配器包 2010
可以解决此问题的修复程序包括在累积更新包 2 BizTalk 适配器包 2010 中。 有关如何获取此累积更新程序包,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2572999 累积更新包 2 BizTalk 适配器包 2010
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
参考
BizTalk Server 服务包和累积更新列表相关信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2555976 Service pack 和 BizTalk Server 的累积更新列表 BizTalk Server 修补程序的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2003907 BizTalk Server 修补程序的信息