会话值在页面加载中丢失

时间:2010-04-12 10:18:27

标签: c# web-applications

我已经将一个Web应用程序项目从2003年转换为2005年。在2003年一切正常,但2005年转换后的Web应用程序项目存在一些问题,问题在于会话值,最初会话值工作正常(这是第一次),但如果第二次加载页面,会话值将变为空。

在第一页会话值设置,在第二页接收会话值然后我点击按钮页面将重新加载,现在会话值为空..

请给我一些答案或链接以便参考。

1 个答案:

答案 0 :(得分:0)

检查您的应用程序是否不会更改文件夹结构中的任何内容,例如创建新文件或文件夹。这通常会导致应用程序重置,从而导致会话信息丢失。特别是某些特殊文件夹和文件(如App_Code文件夹和Web.Config)会在修改后立即重置应用程序。

如果不是这种情况,则可能是代码逻辑问题。尝试使用属性重构会话变量的读/写:

private string MySessionVar {
    get { return (string)Session["MySessionVar"]; }
    set { Session["MySessionVar"] = value; }
}

然后将断点添加到getter和setter并运行代码以检查导致会话变量被覆盖的原因。如果您使用它们,请务必检查用户控件。

此外,如果变量仅用于当前页面,您可以考虑使用Viewstate变量。