加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 查找会话状态的所有使用

发布时间:2020-12-16 03:20:31 所属栏目:asp.Net 来源:网络整理
导读:我正在寻找一些关于如何在现有的asp.net(MVC)应用程序中快速查找会话状态的一些聪明的想法. 该应用程序是外包开发的主题,并且在生产中运行良好.但我们最近意识到它使用InProc会话状态而不是(我们的首选路由)StateServer. 在小规模测试中,我们将其切换到State
我正在寻找一些关于如何在现有的asp.net(MVC)应用程序中快速查找会话状态的一些聪明的想法.

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

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

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

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

我决定尝试使用Reflector.我已经分析了以下各项的“使用者”:

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).我是否遗漏了任何其他项目可以在会话中结束的路线?

解决方法

你可以获得asp.net MVC的源代码.寻找使用Session

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

我实际上发现这些非常有用,当你需要找出为什么它正在做它的功能时.

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

从DB错误来看,听起来像nHibernate可能会做些什么.您可以获得该源代码以查看,但我确信会记录使用会话.

西蒙

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读