2

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

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

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

当我使用搜索引擎搜索该项目并单击按钮时,它可以正常工作。

当我将链接复制到浏览器时:显示了该项目,但是单击该按钮会返回一个“空异常”——包含有关该项目的信息的会话变量会丢失。此外,当我第二次提供按钮工作的链接时,变量就在那里!!!

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

4

1 回答 1

1

听起来像是没有根据链接信息正确初始化 Session("your_variable") 的边缘情况。

调查事项:

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

于 2009-12-23T15:01:30.110 回答