我有一张地图,它为我构建了一条消息,然后将其传递给另一个地图(全部在一个编排中。
检查第一个映射的消息输出,我可以看到该消息包含 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,这就是为什么我认为这是问题所在。