【问题标题】:.NET custom session state provider: not persisting across pages...sometimes.NET 自定义会话状态提供程序:不跨页面持续存在...有时
【发布时间】:2011-09-21 14:37:50
【问题描述】:

我在我的应用程序中为 Oracle 实现了一个自定义会话状态提供程序。它似乎运行顺利(没有错误!),但是当我重定向到另一个页面时,我无法检索一些 Session 变量。但这并不总是发生。

当 Session 启动时,我将一个 User 对象加载到 Session 中。它留在那里,因为当用户到达起始页面(并通过身份验证)时,应用程序仍然可以识别他。从 Session 中检索 User 对象没有问题。

但是,如果我在应用程序内的一个页面上将值传递给 Session,然后重定向到另一个页面以利用该 Session 变量,则新页面会从同一个命名的 Session 变量中检索 null。使用 Visual Studio Watch 窗口,我实际上可以看到它的值从“100”(或其他)变为 null。我不明白。

会话提供程序似乎工作正常,因为正如我所说,我能够保留 一些 变量。有人知道 Session 可能“失去”价值的原因是什么吗?谢谢。

【问题讨论】:

    标签: asp.net oracle session-state provider


    【解决方案1】:

    如果您在页面中执行 response.redirect,这可能会导致线程在 Session 写回数据库之前中止。

    【讨论】:

    • 我不确定 Response.Redirect 是否正在发生。单击 Telerik 树视图节点时,我可以非常一致地重现该行为,并将其 navigateurl 设置为新页面。树视图点击是否可能会执行 response.redirect?
    • 是的,如果它导航到一个新页面,那么它肯定会进行重定向。
    猜你喜欢
    • 2011-06-09
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 2016-04-09
    • 2016-04-19
    • 2013-07-21
    • 2012-08-23
    • 1970-01-01
    相关资源
    最近更新 更多