我将NodeIds(其中22,000个)收集到List并将它们传递给
tree.SelectSingleNode(NodeID) // Kentico API7
我是否使用
tree.SelectSingleNode(NodeID)
或其等同于NodeAliasPath
tree.SelectSingleNode(CMSContext.CurrentSiteName, aliaspath, culture)
同时返回一个允许操作Node数据的节点,我得到了一个 两行都有内存错误:
tree.SelectSingleNode(NodeID)
tree.SelectSingleNode(CMSContext.CurrentSiteName, aliaspath, culture)
错误消息是由于代码还是环境造成的?
以下是错误消息:
托管调试助手'FatalExecutionEngineError'在'C:\ Users \ xxxxxxx \ Documents \ Visual Studio 2013 \ Projects \ ConsoleApplication4 \ ConsoleApplication4 \ bin \ Debug \ ConsoleApplication4.vshost.exe'中检测到问题。
其他信息:运行时遇到致命错误。错误的地址是0x005228e7,位于线程0x5330。错误代码是0x80131623。此错误可能是CLR中的错误,也可能是用户代码的不安全或不可验证部分中的错误。此错误的常见来源包括COM-interop或PInvoke的用户封送错误,这可能会破坏堆栈。
答案 0 :(得分:2)
您似乎正确获取信息。问题是,当将所有数据存储在内存中时,您只是拥有太多节点并且内存不足。我要做的就是获取数据并分批处理。如果您正在运行多租户环境,则还可以在where子句中指定SiteID。您还可以指定要接收或修改的列,这也有助于您返回的数据量。