【问题标题】:System.OutOfMemoryException when batching data to client using Microsoft Sync Framework使用 Microsoft Sync Framework 将数据批处理到客户端时出现 System.OutOfMemoryException
【发布时间】:2014-04-09 22:46:13
【问题描述】:

我目前正在使用 Microsoft Sync Framework 将数据从 mssql 数据库同步到托管在 Windows Phone 8 上的 sqlite 数据库。我正在使用 SyncToolkit。

我正在使用 SetDownloadBatchSize 来限制通过网络发送的数据以防止 System.OutOfMemoryException,但我仍然收到它,就像框架没有处理旧的批处理集一样。

当我说 4,000 行数据时,它会成功运行(同步),当我将此数据增加到 30,000 行时,它会触发此异常。

在我打开这个框架并尝试破解它之前,任何帮助都会有所帮助。

干杯, 亚历克斯

【问题讨论】:

  • 内存不足是否来自同步码本身?或者你真的用完了反序列化同步数据、加载 Sqlite 和运行你的应用程序的内存吗?

标签: c# sqlite windows-phone-8 sync microsoft-sync-framework


【解决方案1】:

你们如何实现同步服务?如果您实现为 wcf 服务,请配置 wcf 服务和客户端配置文件的消息大小

配置绑定。例如 wcf 服务 web 配置文件

<binding name="largeMessageHttpBinding" allowCookies="true" maxReceivedMessageSize="20000000" maxBufferPoolSize="20000000" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" messageEncoding="Text">
          <readerQuotas maxArrayLength="2147483647" maxDepth="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647"/>
          <security mode="TransportWithMessageCredential">
            <transport clientCredentialType="Basic"/>
            <message clientCredentialType="UserName"/>
          </security>
        </binding>

【讨论】:

  • 在 wcf 服务和客户端配置文件的 web 配置文件中配置消息大小。我已将 wcf 服务 Web 配置文件的示例代码添加到答案中
【解决方案2】:

框架中有一个错误,我手动更正了它,因为它是开源的。

现在一切正常。

【讨论】:

    猜你喜欢
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 2016-08-11
    相关资源
    最近更新 更多