在ASP.NET MVC应用程序中,如何有效避免使用Entity Framework和Windsor时引发的内存泄漏长尾问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计386个文字,预计阅读时间需要2分钟。
我无法让 Windsor 容器和实体框架一起工作,这可能是由于我自身介绍的一个问题。但最终结果是,我得到了可怕的内存泄漏。我的应用程序设置了 EDMX、数据库和服务的配置,那些与 ObjectContext 的使用有关。
我无法让windsor容器和实体框架一起工作,这可能是由于我自己介绍的一个问题,但最终结果是我得到了可怕的内存泄漏.我的应用程序设置了EDMX和存储库和服务,那些和objectcontext在我使用的windsor配置文件中设置为perwebrequest.但是,当我查看ANTS内存分析器中的内存使用情况时,我发现尽管确认已调用Dispose,但仍然将对象上下文缓存保留为缓存的引用.
每个请求更多的动态代理都会卡在内存中.如果有其他人设法让自己陷入这样的泡菜中并且可以为我提供建议以摆脱它,我将不胜感激.
_container.Kernel.ReleasePolicy = new NoTrackingReleasePolicy();
虽然windsor容器调用perwebrequest组件的dispose方法,但它仍然挂在它们的引用上,这防止它们被垃圾收集.
在这种情况下,它持有引用的对象是ObjectContext类型.不幸的是,尽管处理了这个对象,但是这个对象中缓存的所有动态代理仍然有效地意味着我的数据库的副本(或者至少我正在访问的部分)被添加到内存中,每个请求都会导致它增加.
本文共计386个文字,预计阅读时间需要2分钟。
我无法让 Windsor 容器和实体框架一起工作,这可能是由于我自身介绍的一个问题。但最终结果是,我得到了可怕的内存泄漏。我的应用程序设置了 EDMX、数据库和服务的配置,那些与 ObjectContext 的使用有关。
我无法让windsor容器和实体框架一起工作,这可能是由于我自己介绍的一个问题,但最终结果是我得到了可怕的内存泄漏.我的应用程序设置了EDMX和存储库和服务,那些和objectcontext在我使用的windsor配置文件中设置为perwebrequest.但是,当我查看ANTS内存分析器中的内存使用情况时,我发现尽管确认已调用Dispose,但仍然将对象上下文缓存保留为缓存的引用.
每个请求更多的动态代理都会卡在内存中.如果有其他人设法让自己陷入这样的泡菜中并且可以为我提供建议以摆脱它,我将不胜感激.
_container.Kernel.ReleasePolicy = new NoTrackingReleasePolicy();
虽然windsor容器调用perwebrequest组件的dispose方法,但它仍然挂在它们的引用上,这防止它们被垃圾收集.
在这种情况下,它持有引用的对象是ObjectContext类型.不幸的是,尽管处理了这个对象,但是这个对象中缓存的所有动态代理仍然有效地意味着我的数据库的副本(或者至少我正在访问的部分)被添加到内存中,每个请求都会导致它增加.

