我正在开发一个asp.net-mvc应用程序.
linq数据上下文通过结构图传递到我的服务对象中.我已经准备好了混合动力的范围.这一切都很好.
protected override void configure() { ForRequestedType<AetherDataContext>() .TheDefaultIs(() => new AetherDataContext()) .CacheBy(InstanceScope.Hybrid); }
问题是我一直在运行内存,我想知道Idisposable接口是否实际被调用.
有人有任何想法吗?
没有人对可能导致我记忆异常的事情有任何其他想法吗?
更新:
所以一些额外的信息,我只是在我的数据上下文中填充了几个方法,在那里放置制动点.
protected override void dispose(bool disposing) { Debug.WriteLine("disposing: " + DateTime.Now); base.dispose(disposing); } public new void dispose() { Debug.WriteLine("disposing: " + DateTime.Now); base.dispose(); }
解决方法
这几乎是我2天前提出的问题的精确副本:
Session containing items implementing IDisposable
InstanceScope.Hybrid只将对象存储在HttpContext.Current.Items中(如果存在)或ThreadLocal存储,否则InstanceScope.HttpSession的工作方式与使用HttpSession和ThreadLocal的方式不同.项目集合按照请求生存,因此如果您实现我的问题中指出的模式,您应该在当前请求的末尾看到dispose fired.
原文地址:https://www.jb51.cc/csharp/100020.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。