构建期间BizTalk映射无限循环(易于复制)

时间:2014-08-05 20:33:53

标签: web-services wsdl biztalk biztalk-2013

我试图在BizTalk(2013)中使用Web服务,但构建过程最终消耗3 GB内存并在10分钟后退出而未指定错误。

我不确定我做错了什么,或者只是将WSDL放在一起的方式。任何建议将不胜感激!

复制问题的步骤

  1. 添加生成的项目>消费WCF服务> https://webservice.s6.exacttarget.com/etframework.wsdl
  2. 添加新地图
  3. 源架构:任何
  4. 目标架构:RetrieveRequest
  5. 无需实际映射。构建项目并观察您的资源消耗
  6. 注意:删除"检索" node仅解决了RetrieveRequest的问题。

    我不确定这是否相关,但我注意到复杂类型" DataFolder"有一个名为" ParentFolder"它是复杂类型的DataFolder。 WSDL中还有许多其他类似的实例,所以我希望这不是问题!

1 个答案:

答案 0 :(得分:3)

我尝试在BizTalk 2010(Visual Studio 2010)中复制它,并看到了类似的内存使用模式。但是在5分钟后,我确实在地图的.cs文件中出现了一些错误,包括Exception has been thrown by the target of an invocationSystem.OutOfMemoryException异常。

其他错误与无效声明的私有const字符串有关。

public sealed class MapName : global::Microsoft.XLANGs.BaseTypes.TransformBase {

    private const string _strMap = ;

    private const string _strArgList = ;

要消除内存不足异常,请右键单击地图并在XML(文本)编辑器中打开。查找GenerateDefaultFixedNodes="Yes"并替换为No并重新编译。

这意味着如果没有映射到目标模式,它就不会在目标模式中创建具有默认值的节点。

我还发现有必要映射至少一个字段以消除其他错误。

如果你想知道我是如何解决这个问题的。我对另一个模式有类似的体验,我遇到了这个博客BizTalk Mapping – fixing huge maps来解释原因(一个巨大的XSD文件)以及解决它的技巧。