【发布时间】:2011-10-04 20:54:34
【问题描述】:
我正在使用 ObjectContext 并将其存储在 HttpContext.Current.Items 集合中。我为单个请求共享 ObjectContext,但该框架还能够通过打开标志来加载 ObjectContext 的新的、非缓存的、不同的副本。这样,对于某些场景,我可以完全绕过 HTTPContext。这是有正当理由的;一个是我有各种使用 ObjectContext 的静态引用,所以这些静态引用中的每一个都有自己的副本。其他情况是特定进程可能以孤立的方式运行,因此它必须是唯一的。
我正在尝试在页面卸载中处理共享的 ObjectContext,这偶尔可以正常工作,但时不时地,我一直在跨请求获取 ObjectDisposedExceptions(因为某些进程试图读取数据并调用它)。我的意思是这一次我会得到这个异常,调用一个回发,并得到那个请求的错误,以及下一个请求。关闭并重新打开浏览器有效,但此后我偶尔会收到错误消息。这是随机的;一次页面工作,后来它没有。这是同一个页面,所以这不是逻辑错误。
这让我相信:
- HttpContext.Current.Items 集合并非孤立于每个用户一个 HttpRequest,或者:
- 静态因素会以某种方式影响共享连接的进程和处置,或者:
- 我需要继续研究一个错误......
有没有人遇到前 2 个项目的问题?是不是我的理解错了?
【问题讨论】:
标签: .net asp.net entity-framework entity-framework-4 objectcontext