【问题标题】:NHibernate + ASP.NET Identity + Autofac cache issueNHibernate + ASP.NET Identity + Autofac 缓存问题
【发布时间】:2016-08-22 21:31:54
【问题描述】:

我正在构建一个带有更新表单的个人资料页面。在提交包含新数据和几次页面刷新的表单后,我有时会看到新数据,有时会看到旧数据。这取决于处理当前请求的线程。一个线程包含新数据,另一个包含旧数据。 NHibernate 是使用 ThreadStaticSessionContextNoCacheProvider 配置的。在 Autofac UserStore 中,OwinContext.AuthenticationUserManager 被配置为 InstancePerRequest

我尝试将 ThreadStaticSessionContext 更改为 CallSessionContext 并且它开始正常工作。那么问题来了:为什么会起作用(ThreadStaticSessionContext 更适合多线程应用)以及它会带来哪些负面影响?

谢谢!

【问题讨论】:

  • 这是一个 Windows 或 Web 应用程序吗?
  • 这是一个网络应用程序。

标签: caching nhibernate asp.net-identity autofac


【解决方案1】:

ThreadStaticSessionContext 用于长时间运行的进程,例如 Windows 服务或 Windows 应用程序。对于 Web 应用程序,您希望实现 Session Per Request。这就是 WebSessionContext 的用途。

我实际上不使用任何上下文,只是自己连接起来。例如,请参阅我的回答 here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多