【发布时间】:2014-10-17 11:42:18
【问题描述】:
我有一个包含以下组件的自定义发送管道:
预组装:
- 无组件
组装
- XML 汇编器
编码
- 自定义组件 1
- XML 验证器
- 自定义组件 2
使用此配置,我总是在“自定义组件 2”中收到 XmlSchemaException。 “异常消息是”元素不能包含空格。内容模型为空。”
Execute(IPipelineContext pContext, IBaseMessage pInMsg)
{
ReadOnlySeekableStream stream = new ReadOnlySeekableStream(pInMsg.BodyPart.GetOriginalDataStream());
XDocument doc;
//Exception on next line:
using(XmlReader reader = XmlReader.Create(stream))
{
reader.MoveToContent();
}
}
这很奇怪,因为当我删除例如“自定义组件 1”或“XML 验证器”时,它工作正常。只有当我拥有所有 3 个组件时,我才会遇到异常。
知道我可能需要检查什么才能使其适用于所有组件吗?
谢谢你和最好的问候 迈克尔
【问题讨论】:
-
我假设您更改了自定义组件 1 中的消息?你确定消息的Body流是正确的并且修改后设置为正确的长度吗?
-
在第一个组件中,我更改了消息并为 BodyPart.Data 分配了一个新的内存流(并将位置设置为流的 0)
-
您是否尝试过将流记录到此行之前的某个位置的字符串?你可以试试看有没有问题。
-
是的,我创建了一个 StreamReader 并使用了“ReadToEnd()”,但这也会抛出相同的 XmlSchemaException(当我在管道中拥有所有 3 个组件时)
标签: c# biztalk biztalk-2010