gpt4 book ai didi

asp.net-mvc - 在 ASP.NET MVC 应用程序中使用 Entity Framework 和 Windsor 时发生内存泄漏

转载 作者:行者123 更新时间:2023-12-01 10:12:13 25 4
gpt4 key购买 nike

我在让 windsor 容器和 Entity Framework 一起工作时遇到了问题,这可能是由于我自己介绍的一个问题,但最终结果是我遇到了严重的内存泄漏。

我在我的应用程序中设置了 EDMX 和存储库和服务,并且在我使用的 windsor 配置文件中将这些和对象上下文设置为 perwebrequest。但是,当我查看 ANTS 内存分析器中的内存使用情况时,我发现尽管已确认已调用 Dispose,但对象上下文缓存仍作为缓存的引用保留。

而且每次请求更多的动态代理都会卡在内存中。如果其他人设法让自己陷入这样的困境,并且可以向我提供摆脱困境的建议,我们将不胜感激。

最佳答案

我通过将 windsor 容器的内核发布设置更改为:

_container.Kernel.ReleasePolicy = new NoTrackingReleasePolicy();

看起来虽然 windsor 容器调用了 perwebrequest 组件的 dispose 方法,但它仍然卡在它们的引用上,以防止它们被垃圾收集。

在这种情况下,它所引用的对象属于 ObjectContext 类型。不幸的是,尽管处理了这个对象,但缓存在这个对象中的所有动态代理仍然有效,这意味着我的数据库(或至少我正在访问的部分)的副本被添加到内存中,每个请求都会导致它增加。

关于asp.net-mvc - 在 ASP.NET MVC 应用程序中使用 Entity Framework 和 Windsor 时发生内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4226113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com