0

我有一张地图,它为我构建了一条消息,然后将其传递给另一个地图(全部在一个编排中。

检查第一个映射的消息输出,我可以看到该消息包含 EF BB BF 字节顺序标记。

当第二个映射执行时,它会抛出异常“根级别的数据无效。第 1 行,位置 61。”:

xlang/s 引擎事件日志条目:未捕获的异常(请参阅下面的“内部异常”)已暂停服务“MyCompany.MyOrchestration(004464ca-1c34-e342-591d-5e8182a4be18)”的实例。
服务实例将保持挂起状态,直到以管理方式恢复或终止。
如果恢复,实例将从其上次持久状态继续,并可能重新引发相同的意外异常。
InstanceId:62d99333-8dc4-4ca4-9e5b-7fdf8583e081 形状名称:conCDA
ShapeId:ba722b56-c115-4abb-b40c-211824369266
抛出异常:段 1,进度 15
内部异常:根级别的数据无效。第 1 行,位置 61。

异常类型:XmlException
源:System.Xml
目标站点:Void Throw(System.Exception) 以下是标识异常发生位置的堆栈跟踪

在 System.Xml.XmlTextReaderImpl.Throw(Exception e)
在 System.Xml.XmlTextReaderImpl.Throw(String res, String arg)
在 System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()
在 System.Xml.XmlTextReaderImpl.ParseDocumentContent()
在 System. Xml.XmlTextReaderImpl.Read()
在 System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)
在 System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
在 System.Xml.XmlDocument.Load(XmlReader reader)
在System.Xml.XmlDocument.Load(TextReader txtReader)
at Microsoft.XLANGs.Core.Service.Transform.ShredXmlDocument(Stream inStream, Object[] outParams, String mapName, XmlDeclaration xmlDecl)
在 Microsoft.XLANGs.Core.Service.ApplyInMemoryTransform(类型 mapRef,TransformMetaData trfMetaData,Object[] outParams,Stream[] inStreams)
在 Microsoft.XLANGs.Core.Service.ApplyTransform(类型 mapRef,Object[] outParams,Object[] inParams )
在 MyCompany.MyOrchestration.segment1(StopConditions stopOn)
在 Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception& exp)

如何让第一张地图不添加字节顺序标记?

编辑: 第一个映射是在输入端有两条消息的映射,这些消息映射到输出端的单条消息。第一条消息使用结构链接映射所有节点,第二条消息使用大量复制功能。即使在字节级别查看消息,我在字符 61 处也看不到任何有趣的字符。我可以看到 BOM,这就是为什么我认为这是问题所在。

4

1 回答 1

2

我不完全确定这是一个 BOM 问题 - 您还没有明确说明您是如何创建地图的(即您是否有自定义功能,您是否使用 XSLT 等)您能否确认(或周围)是什么角色) 字符 61 - 它是保留的 Xml 标记字符之一吗?

或者,您是否检查过您调用的第一个地图在使用 VS 解决方案资源管理器中的“测试地图”工具运行时是否产生有效输出?您是否将 'Validate TestMap Input' 和 'Validate TestMap Output' 选项设置为 TRUE 并且它不会引发任何错误?另外,您是否尝试过保存第一个地图测试的输出并将其用作第二个地图测试的输入?

于 2013-03-19T09:44:38.883 回答