我正在构建一个包含更新表单的个人资料页面。在提交包含新数据和多次页面刷新的表单后,我会看到有时新的,有时是旧的数据。这取决于线程处理当前请求。一个线程包含新数据,另一个包含旧数据。使用 ThreadStaticSessionContext 和 NoCacheProvider 配置 NHibernate 。在 Autofac UserStore 中, OwinContext.Authentication 和 UserManager 配置为 InstancePerRequest 。< / p>
我尝试将 ThreadStaticSessionContext 更改为 CallSessionContext ,然后它开始正常运行。所以问题是:为什么它可以工作( ThreadStaticSessionContext 更适合多线程应用程序)以及它带来的负面影响?
谢谢!
答案 0 :(得分:0)
ThreadStaticSessionContext适用于长时间运行的进程,例如Windows服务或Windows应用程序。对于您希望实现Session Per Request的Web应用程序。这就是WebSessionContext的用途。
我实际上并没有使用任何上下文,只是自己连接它。请参阅我的回答here以获取示例。