【问题标题】:EsentTooManyInstancesException while using Esent databse in windows forms application在 Windows 窗体应用程序中使用 Esent 数据库时出现 EsentTooManyInstancesException
【发布时间】:2013-04-03 16:40:05
【问题描述】:

我们正在尝试使用 Esent 数据库作为一个巨大的内存列表的替代品,以在执行应用程序时释放内存。但是由于创建了很多 ESENTDbWrapper(我们对 Esent.Interop 的自定义包装器)的实例,在某些时候它会抛出 EsentTooManyInstancesException

那么,最大编号是多少。可以初始化的同时实例数?或者,我们是否缺少任何与配置相关的东西???任何形式的建议表示赞赏。谢谢。

【问题讨论】:

    标签: c# .net winforms memory esent


    【解决方案1】:

    实例数量的限制是 1024。听起来好像你在泄漏实例。

    但是创建实例相对昂贵。您应该共享同一个实例,而是创建多个会话供您访问。

    实例与日志文件流相关联,并且通常以独占方式打开日志文件和数据库,因此您会收到 ACCESS_DENIED 错误。我猜您正在对您的实例进行只读访问,而只读实例将以只读方式打开文件,并“允许其他读者”访问这些文件。

    希望对你有帮助,

    -马丁

    【讨论】:

    • 您能否发布一些相关信息/资源的链接?我们在共享会话时遇到问题。任何代码示例都会很有帮助。谢谢。
    • 既然您在谈论 EsentTooManyInstancesException,我假设您正在使用 ManagedEsent (managedesent.codeplex.com)。下载源代码并查看广泛的测试套件。还有一个不错的 HowDoI.cs 文件,其中显示了一些其他示例。你在分享会上遇到了什么样的问题?你有例外吗?还是数据不一致?
    • 谢谢。我们现在把一切都整理好了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-27
    • 1970-01-01
    • 2014-10-21
    • 1970-01-01
    • 2014-05-17
    • 2017-07-24
    • 1970-01-01
    相关资源
    最近更新 更多