【问题标题】:asp.net session object being set to emptyasp.net 会话对象被设置为空
【发布时间】:2012-08-25 10:06:45
【问题描述】:

我的 asp.net 应用程序中有一个 Session 对象,我将其设置为 userID 值。会话对象在 gloal.asax 中被实例化。当用户登录并已通过身份验证时,将在 button_click 事件上设置该值。

但是,在我的应用程序的某个地方,会话被设置为空。如何确定会话对象在何处以及如何设置为空?

【问题讨论】:

  • 你能把global.asax中的代码贴出来吗?通常,会话不需要被实例化。

标签: c# asp.net session


【解决方案1】:

对项目中的会话变量进行全局搜索。在所有行上放置一个断点。然后仔细检查应用程序。两天前我也遇到了同样的错误。花了四个小时浏览了 80 多页。祝你好运。

【讨论】:

    【解决方案2】:

    这可能发生的几个原因:

    • 您是否正在修改Page_Load() 上的变量?
    • 您的浏览器是否返回会话 cookie? (您可以使用Fiddler 进行验证)

    根据我的经验,上述问题几乎肯定会解决。

    【讨论】:

    • 不在 page_load 上。我在 global.asax session_start 中确实有它,然后在 button_click 事件中是写入或读取会话值的位置。
    • 还要确保会话 ID 从您在 session_start 中创建变量到您尝试在点击事件中检索它时没有发生变化。
    • 好的,我会仔细检查您在 global.asax 中的内容,并且它没有针对每个请求运行。
    • @m.edmondson 我验证了 global.asax 行仅在我启动应用程序时被调用。
    • @JeffSiver 我确定会话 ID 没有改变
    猜你喜欢
    • 2015-03-11
    • 1970-01-01
    • 2014-04-22
    • 2013-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多