gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 16:40:10 24 4
gpt4 key购买 nike

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

我在 MVC 中处理/调整图像大小的 Controller 之一应用了以下属性:

[SessionState(SessionStateBehavior.Disabled)]

现在,如果 Controller 中的某个操作尝试访问 session - 它显然会引发异常 - 所以到目前为止我们一切顺利。

问题是:如果我转到 IIS 工作进程窗口(Win Server 2008 R2、IIS 7.5),并检查此站点的当前请求,我有时可以看到对此 Controller 中的操作的请求。它们的当前状态被锁定在状态:RequestAcquireState,模块名称: session 中。有时,这些锁在此状态下会持续一两秒。

该属性的全部意义难道不是首先使对 Controller 的请求忽略状态,而不是浪费时间(并且可能被锁定)尝试获取状态吗?

如果是这样 - 是我在这里做错了什么,还是问题出在其他地方?

最佳答案

[从评论迁移]

如果您使用自定义 Controller 工厂或路由处理程序,请确保它们了解 Controller 的 session 状态行为。将 Controller 标记为不需要 session 状态需要这两个组件的配合。开箱即用的 DefaultControllerFactory 和 MvcRouteHandler 旨在处理此问题。有关详细信息,请参阅 DefaultControllerFactory.GetControllerSessionBehavior 和 MvcRouteHandler.GetHttpHandler。如果您正在编写自定义组件,则可以使用这些方法作为灵感。

关于asp.net - MVC 3 中的 SessionState 属性是否正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4971624/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com