代码之家  ›  专栏  ›  技术社区  ›  Rob Bowman

无法读取管道生成的流-参数名称:格式

  •  0
  • Rob Bowman  · 技术社区  · 6 年前

    我有一个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平面文件汇编程序组件)上,我用所需的 架构类型名,程序集强名称 . 这实际上不是必需的,因为Biztalk能够从提升的命名空间rootnode确定架构,因此我尝试了不设置属性,但仍然得到相同的结果。

    3 回复  |  直到 6 年前
        1
  •  1
  •   Dijkgraaf José Ignacio Gutiérrez Guzmán    6 年前

    可能导致此错误的情况有多种。

    1. 该模式实际上不是平面文件模式(但您已经检查过了),请参见 MSDN Unable to read the stream produced by the pipeline, Flat Send Pipeline
    2. 它是一个固定长度的架构,缺少一个必需的字段(请参见 Error details: Unable to read the stream produced by the pipeline. Details: Cannot find definition for the input: {Record, Element, or Attribute} 而且 Flat file assembler 通过强制从源架构创建可选元素来解决。
        2
  •  1
  •   Blatter Nicolas    6 年前

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

        3
  •  0
  •   Rob Bowman    6 年前

    恐怕这是我不知道怎么修的。这个问题让我疯狂了好几个小时,所以我回到了基础知识,在另一个dev-vm上创建了一个新的解决方案——它起作用了!所以,我回到了我的主dev vm,问题不再是这个了。现在我不相信魔法,所以我肯定我已经改变了一些东西,但是我已经尝试过通过干预输入文件和平面文件模式来重新创建错误,而且我还没能做到。

    我了解到,使用vs为给定的XML文件“生成平面文件的实例”是无用的——它将生成一个文件,但使用XML元素名称作为数据。最好使用可以在中找到的ffasm.exe D:\程序文件(x86)\Microsoft Biztalk Server 2016\sdk\utilities\pipelinetools

    现在就结束一个单元测试,以防bug再次攻击。