升级到 IIS 7.5 后出现 LazyInitializationException
我们开发一个 ASP.NET 4.0 / MVC 3 Web 应用程序,使用 Active Record 作为数据库抽象。
为了能够在视图内使用惰性关系,我们使用 ActiveRecord 文档中的 SessionScopeWebModule 这里。
该应用程序在我们当前的 Win 2003 / IIS 6 计算机上运行良好,但仅在我们新的 Win 2008 R2 / IIS 7.5 上,当控制器或视图尝试访问惰性关系时,它会抛出 LazyInitializationException 。更改为手动会话处理(也在上面的文档链接中进行了解释)后,它再次工作。
我想知道有什么区别,因为手册指出这两种方法基本上做同样的事情。
We develop a ASP.NET 4.0 / MVC 3 web application, using Active Record as database abstraction.
To be able to use lazy relations inside views, we are using the SessionScopeWebModule from ActiveRecord documentation here.
The app works fine on our current Win 2003 / IIS 6 machine, but only on our new Win 2008 R2 / IIS 7.5 it throws a LazyInitializationException when a controller or view tries to access a lazy relation. After changing to manual session handling (also explained in the doc link above), it works again.
I wonder what the difference is, as the manual states that both approaches do basically the same thing.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在集成管道中的 IIS 7+ 中运行 ASP.NET 应用程序时,需要在 web.config 的 system.webServer /modules 部分下注册 http 模块。
IIS 6 和 IIS 7+ 可以有一个 web.config,请参阅这篇文章。
否则,在经典管道模式下运行,它将像在 IIS 6 中一样运行。
When running an ASP.NET app in IIS 7+ in integrated pipeline, you need to register the http modules under the system.webServer / modules section of web.config.
It's possible to have a single web.config for both IIS 6 and IIS 7+, see this article.
Otherwise, run in classic pipeline mode, it will behave just as in IIS 6.