【发布时间】:2012-07-12 07:51:06
【问题描述】:
在我们的应用程序中,提供了一个页面,该页面随后应该对更多数据进行并行异步调用。这些调用正在排队,我读到使用同一个会话的调用会排队,因为有多个请求写入同一个会话可能会引起并发症。
我还读到如果没有会话或者我们不需要写入会话,控制器可以设置为 [SessionState(SessionStateBehavior.Disabled)] 或 [SessionState(SessionStateBehavior.ReadOnly)]。
我已经尝试了这些,因为我不需要写入会话,所以我认为请求将同时提供,或者如果我在没有意识到的情况下使用会话,则会引发异常。
这两种情况都不是。来自同一用户的请求仍在排队中。
如何验证我的指令 [SessionState(SessionStateBehavior.ReadOnly)] 是否得到遵守?
什么可能导致此问题?
如果相关,我们将在Orchard 的范围内工作。
【问题讨论】:
-
出于测试目的,完全禁用会话并查看它是否有效:
<sessionState mode="Off" />在您的 web.config 中。 -
但是对其他控制器的一些请求确实需要会话......但也许我可以尝试一下。
-
试一试。您将看到没有会话会好得多 :-) 您的应用程序将是 RESTFul 和无状态的,所有 Web 应用程序都应该这样设计。
标签: asp.net asp.net-mvc-3 session httphandler orchardcms