2009-12-23 43 views
2

我在ASP/VB.NET应用程序中失去会话变量时遇到了问题。会话变量在特定场景中丢失

该应用程序允许搜索一个项目,或者它可以显示一个项目,如果提供了一个独特的链接(在浏览器中)。它拥有关于会话变量中项目的信息。

在显示项目的网页中,用户可以单击一个按钮,该按钮将打开一个窗口,其中包含有关该项目的其他信息 - 从会话变量中获取。

当我使用搜索引擎搜索项目,然后单击按钮 - 它工作正常。

当我将链接复制到浏览器时:显示该项目,但单击该按钮将返回'空例外' - 会话变量以及关于该项目的信息将丢失。此外,当我第二次提供链接按钮的作品时,变量在那里!

有没有人知道为什么会发生这种情况?

+0

嗨,欢迎来到stackoverflow! –

+0

看起来你错过了你的解释。你能澄清一下你在“搜索引擎”下的意思吗? – Restuta

+0

这只是我公司实施的搜索功能,用于搜索数据库中的项目。 – danme0

回答

1

听起来像是一个边缘案例,其中Session(“your_variable”)没有根据链接信息正确启动。

旅游调查:

是被服务的页面在缓存当您最初提供的链接? ASP.NET将缓存内容并且不执行服务器端代码,因为该页面不是在请求上再次创建的。如果你有加载页面时初始化某些状态的代码,稍后会在点击按钮时引用它,那确实可能是你的问题。