Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net MVC 3中的SessionState属性是否正常工作?_Asp.net_Session_Asp.net Mvc 3 - Fatal编程技术网

Asp.net MVC 3中的SessionState属性是否正常工作?

Asp.net MVC 3中的SessionState属性是否正常工作?,asp.net,session,asp.net-mvc-3,Asp.net,Session,Asp.net Mvc 3,我正在管理一个相当大的项目,它是用asp.NETWebForms+mvc3编写的,拥有大量的用户群和相当高的每日访问量。基本上,在任何给定的时刻都有很多请求 我在MVC中的一个控制器动态处理/调整图像大小时应用了以下属性: [SessionState(SessionStateBehavior.Disabled)] 现在,如果控制器中的一个操作试图访问会话,它显然会抛出一个异常,所以我们目前为止还不错 问题是:如果我转到“IIS工作进程”窗口(Win Server 2008 R2,IIS 7.5

我正在管理一个相当大的项目,它是用asp.NETWebForms+mvc3编写的,拥有大量的用户群和相当高的每日访问量。基本上,在任何给定的时刻都有很多请求

我在MVC中的一个控制器动态处理/调整图像大小时应用了以下属性:

[SessionState(SessionStateBehavior.Disabled)]
现在,如果控制器中的一个操作试图访问会话,它显然会抛出一个异常,所以我们目前为止还不错

问题是:如果我转到“IIS工作进程”窗口(Win Server 2008 R2,IIS 7.5),并检查此站点的当前请求,我有时会看到对此控制器中某个操作的请求。它们的当前状态锁定在
状态:RequestAcquireState,模块名称:Session
。在这种状态下,这些锁有时会超过一两秒钟

属性的全部意义不就是让对控制器的请求忽略状态,而不是浪费时间(可能被锁定)尝试获取状态吗


如果是这样的话——我在这里做错了什么,还是问题出在别处了?

[从评论中迁移]


如果您使用的是自定义控制器工厂或路由处理程序,请确保它们知道控制器的会话状态行为。将控制器标记为不需要会话状态需要这两个组件的合作。开箱即用,DefaultControllerFactory和MvcRouteHandler设计用于处理此问题。有关更多信息,请参阅DefaultControllerFactory.GetControllerSessionBehavior和MvcRouteHandler.GetHttpHandler。如果您正在编写自定义组件,您可以使用这些方法作为灵感。

嗨,Levi,您能回答这个问题吗,这样我就可以这样标记它了?:)回答得好!我实际上使用了一个自定义路由处理程序,它派生自IRoutHandler。我已经将我的处理程序改为从MvcRouteHandler派生,并确保在重写时使用基本实现。谢谢:)