我已在我的应用程序中为Oracle实现了一个自定义会话状态提供程序。它似乎运行顺利(没有错误!),但是当我重定向到另一个页面时,我无法检索一些Session变量。但它不会一直发生。
会话启动时,我将User对象加载到Session中。它保留在那里,因为当用户到达起始页面(并且经过身份验证)时,应用程序仍会识别他。从Session中检索User对象没有问题。
但是如果我在应用程序内的一个页面上将值传递给Session,然后重定向到另一个页面以便利用该Session变量,新页面将从同一个命名的Session变量中检索null。使用Visual Studio Watch窗口,我实际上可以看到它的值从“100”(或其他)变为null。我不明白。
会话提供程序似乎正常工作,因为正如我所说的,我能够持续一些变量。有人知道Session会“丢失”一个值的原因是什么吗?感谢。
答案 0 :(得分:0)
如果您在页面中执行response.redirect,则可能导致线程在Session被写回数据库之前中止。