Art*_*aru 7 asp.net session asp.net-mvc-3
我正在管理一个相当大的项目,用asp.net webforms + mvc3编写,拥有庞大的用户群,并且每日访问量非常高.基本上,在任何特定时刻都有很多请求.
MVC中的一个控制器可以动态处理/调整图像大小,它具有以下属性:
[SessionState(SessionStateBehavior.Disabled)]
Run Code Online (Sandbox Code Playgroud)
现在,如果控制器中的一个动作试图访问会话 - 它显然会抛出一个异常 - 所以到目前为止我们都很好.
问题是:如果我进入IIS工作进程窗口(Win Server 2008 R2,IIS 7.5),并检查此站点的当前请求,我有时可以看到对此控制器中的操作的请求.他们目前的状态被锁定了State: RequestAcquireState, Module Name: Session.有时这些锁会在这种状态下持续一两秒钟.
首先,属性的重点不是向控制器发出请求而忽略状态,而不是浪费时间(并且可能被锁定)试图获取状态?
如果是这样 - 我在这里做错了什么,或问题出在其他地方?
Lev*_*evi 12
[从评论中迁移]
如果您正在使用自定义控制器工厂或路由处理程序,请确保他们知道控制器的会话状态行为.将控制器标记为不需要会话状态需要来自这两个组件的协作.开箱即用,DefaultControllerFactory和MvcRouteHandler设计用于此.有关更多信息,请参阅DefaultControllerFactory.GetControllerSessionBehavior和MvcRouteHandler.GetHttpHandler.如果您正在编写自定义组件,则可以使用这些方法作为灵感.
| 归档时间: |
|
| 查看次数: |
3372 次 |
| 最近记录: |