1

我有一个 BizTalk 2016 FP3 解决方案。使用该向导,我为我的发送端口创建了一个平面文件模式,以从 xml 组装到一个固定位置的文本文件。

当我通过 BizTalk 运行时,我得到一个带有以下错误信息的挂起实例:

Unable to read the stream produced by the pipeline. 
 Details: Value cannot be null.
Parameter name: format 

因此,我打开了挂起消息的消息选项卡并将 xml 复制到测试文件中。然后我通过 ffasm.exe 工具运行它,将我的平面文件模式的路径作为 -bs 参数传递 - 这个工具的输出非常完美,正是我所期望的平面文件内容。

在发送端口(仅包含 Microsoft 平面文件汇编器组件)上,我已将所需的schematypename,assemblystrongname填充为“DocumentSpecName”属性。这并不是真正需要的,因为 BizTalk 能够从提升的 namespace#rootnode 确定架构,所以我尝试过没有设置属性但仍然得到相同的结果。

4

3 回答 3

1

看起来有多种情况会导致此错误。

  1. 该架构实际上不是平面文件架构(但您已经检查过了),请参阅MSDN 无法读取管道生成的流,平面发送管道
  2. 它是一个固定长度的模式,缺少一个必填字段(请参阅错误详细信息:无法读取管道生成的流。详细信息:找不到输入的定义:{Record、Element 或 Attribute}以及平面文件assembler通过强制从源模式创建可选元素来解决。
于 2019-01-14T19:32:50.220 回答
1

昨天刚遇到同样的问题,尝试用另一个管道替换管道,应用然后切换回正确的管道。测试。希望这对您有所帮助。

于 2019-01-15T07:45:16.467 回答
0

恐怕这是在我不知道如何修复的情况下修复的。这个问题已经让我发疯了好几个小时,所以我回到了基础,并在不同的开发虚拟机上创建了一个新的解决方案——它奏效了!所以,我回到了我的主开发虚拟机,问题就没有了。现在我不相信魔法了,所以我确定我一定改变了一些东西,但我已经尝试通过干预输入文件和平面文件模式来重新创建错误,但我一直无法做到。

我了解到,使用 VS 为给定的 xml 文件“生成平面文件的实例”是没有用的——它会生成一个文件,但使用 xml 元素名称作为数据。最好使用D:\Program Files (x86)\Microsoft BizTalk Server 2016\SDK\Utilities\PipelineTools中的 FFAsm.exe

现在围绕这个进行单元测试,以防错误再次发生。

于 2019-01-15T07:20:38.053 回答