Asp.net .NET自定义会话状态提供程序:不跨页面持久化…有时

Asp.net .NET自定义会话状态提供程序:不跨页面持久化…有时,asp.net,oracle,session-state,provider,Asp.net,Oracle,Session State,Provider,我在应用程序中为Oracle实现了一个自定义会话状态提供程序。它似乎运行平稳(没有错误!),但当我重定向到另一个页面时,检索某些会话变量时遇到了问题。但这并非总是发生 当会话启动时,我将用户对象加载到会话中。它会留在那里,因为当用户进入起始页面(并通过身份验证)时,应用程序仍然会识别他。从会话检索用户对象没有问题 但是,如果我将一个值传递到应用程序中某个页面上的会话中,然后重定向到另一个页面以利用该会话变量,则新页面将从同一个命名的会话变量中检索null。使用VisualStudioWatch窗

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

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

但是,如果我将一个值传递到应用程序中某个页面上的会话中,然后重定向到另一个页面以利用该会话变量,则新页面将从同一个命名的会话变量中检索null。使用VisualStudioWatch窗口,我实际上可以看到它的值从“100”(或任何值)更改为null。我不明白


会话提供程序似乎工作正常,因为正如我所说的,我能够持久化一些变量。有人知道会话“丢失”值的原因吗?谢谢。

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

我不确定是否有响应。重定向正在发生。我可以在点击Telerik treeview节点时,将其navigateurl设置为新页面,非常一致地再现这种行为。treeview单击是否可能会进行响应。重定向?是的,如果它导航到新页面,则肯定会进行重定向。