1

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

我不确定我是否做错了什么,或者这只是 WSDL 的组合方式。任何建议,将不胜感激!

复制问题的步骤

  1. 添加生成的项目 > 使用 WCF 服务 > https://webservice.s6.exacttarget.com/etframework.wsdl
  2. 添加新地图
  3. 源架构:任何东西
  4. 目标架构:RetrieveRequest
  5. 无需实际映射。构建项目并观察您的资源被消耗

注意:删除“Retrieves”节点仅解决 RetrieveRequest 的问题。

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

4

1 回答 1

3

我尝试在 BizTalk 2010 (Visual Studio 2010) 中重现它,并看到了类似的内存使用模式。但是 5 分钟后,我确实在地图的 .cs 文件中遇到了一些错误,包括 aException 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"并替换为 aNo并重新编译。

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

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

如果你想知道我是如何解决这个问题的。我在另一个架构上也有类似的经历,我遇到了这个博客BizTalk Mapping – 修复巨大的地图以解释原因(一个巨大的 XSD 文件)以及解决它的技巧。

于 2014-08-05T21:53:13.227 回答