gpt4 book ai didi

asp.net-mvc - 查找 session 状态的所有使用

转载 作者:行者123 更新时间:2023-12-04 21:25:04 24 4
gpt4 key购买 nike

我正在寻找一些关于如何在现有 asp.net (MVC) 应用程序中快速找到 session 状态的所有用法的聪明想法。

有问题的应用程序是外包开发的主题,并且在生产中运行良好。但是我们最近意识到它使用的是 InProc session 状态而不是(我们的首选路由)StateServer。

在小规模测试中,我们将其切换到 StateServer,一切正常。但是,当我们部署到生产中时,我们突然遇到了大量错误。我不确定这些错误是否是由这个更改引起的(他们实际上是在提示数据库级别的问题),但是删除更改允许应用程序再次运行(这可能只是因为它导致了回收发生)。

因此,在我再次尝试切换之前,我想对放置在 session 中的所有对象进行彻底审核(我之前快速浏览了几个 Controller ,它们看起来不错)。如果我可以完全控制代码,这就是我只注释掉类的地方(编译并找到到达 session 类的各种方法),然后注释掉访问器,点击编译,然后访问每个错误。但是我不能用内置的 .NET 框架类型来做到这一点。

那么,关于如何找到每种用法的任何聪明想法?

我决定尝试使用反射器。我已经分析了以下各项的“使用者”:

System.Web.HttpSessionStateBase.set_Item(String, Object) : Void
System.Web.SessionState.HttpSessionState.set_Item(String, Object) : Void
System.Web.SessionState.HttpSessionState.set_Item(Int32, Object) : Void
System.Web.HttpSessionStateBase.set_Item(Int32, Object) : Void
System.Web.HttpSessionStateBase.Add(String, Object) : Void
System.Web.SessionState.HttpSessionState.Add(String, Object) : Void

(并检查我们没有在任何地方使用 TempData)。我是否错过了其他任何可以在 Session 中结束项目的路线?

最佳答案

您可以获取 asp.net MVC 的源代码。寻找 Session 的使用

http://aspnet.codeplex.com/releases/view/58781对于 MVC 3
http://aspnet.codeplex.com/releases/view/41742对于 MVC 2
http://aspnet.codeplex.com/releases/view/24471对于 MVC 1

我实际上发现这些非常有用,当你需要找出为什么某物正在做它所做的时候,这些非常有用。

MVC 2 不会在 session 关闭的情况下运行,因此它可能以与 stateserver 不兼容的方式使用 session 。

从数据库错误中,听起来 nHibernate 可能在做某事。你也可以得到它的源代码来看看,但我确信它的 session 使用将被记录下来。

西蒙

关于asp.net-mvc - 查找 session 状态的所有使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4885825/

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