我有一个使用 ReadCommitted 隔离的 NHibernate MVC 应用程序。
在站点上,用户可以启动某个过程,根据输入,可能需要几分钟。这是因为 session 是按请求进行的,并且一直处于打开状态。
但是在运行时,没有其他用户可以访问该站点(他们可以尝试,但除非长期运行的事情完成,否则他们的请求不会通过)
更重要的是,我还需要一个控制台应用程序,它在连接到同一个数据库时也能执行这个长时间运行的功能。它导致了同样的问题。
我不确定我的设置的哪一部分是错误的,任何反馈将不胜感激。
NHibernate 设置了流畅的配置和 StructureMap。
最佳答案
听起来您的请求正在等待数据库锁。你的选择真的是:
(注意,我假设长时间运行的函数会进行大量读取/写入,而被阻止的请求主要是读取。)
关于c# - 如何防止 NHibernate 长时间运行的进程锁定网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15958407/