我在ASP / VB.NET应用程序中丢失会话变量时遇到了问题。
应用程序允许搜索项目,或者如果提供了唯一链接(在浏览器中),它可以显示项目。它包含有关会话变量中项目的信息。
在显示项目的网页中,用户可以单击一个按钮,打开一个窗口,其中包含有关项目的其他信息 - 从会话变量中获取。
当我使用搜索引擎搜索项目并单击按钮时 - 它可以正常工作。
当我将链接复制到浏览器时:显示该项目,但是单击该按钮会返回“空例外” - 包含该项目信息的会话变量将丢失。此外,当我第二次提供链接按钮时,变量就在那里!!!
有谁知道为什么会发生这种情况?
答案 0 :(得分:1)
听起来像边缘情况,其中Session(“your_variable”)没有根据链接信息正确启动。
要调查的事项:
最初提供链接时,页面是否通过缓存提供服务? ASP.NET将缓存内容而不执行服务器端代码,因为该请求不会再次创建页面。如果您的代码在加载页面时启动某些状态,稍后在单击该按钮时会引用该页面,那确实可能是您的问题。