我已经将一个Web应用程序项目从2003年转换为2005年。在2003年一切正常,但2005年转换后的Web应用程序项目存在一些问题,问题在于会话值,最初会话值工作正常(这是第一次),但如果第二次加载页面,会话值将变为空。
在第一页会话值设置,在第二页接收会话值然后我点击按钮页面将重新加载,现在会话值为空..
请给我一些答案或链接以便参考。
答案 0 :(得分:0)
检查您的应用程序是否不会更改文件夹结构中的任何内容,例如创建新文件或文件夹。这通常会导致应用程序重置,从而导致会话信息丢失。特别是某些特殊文件夹和文件(如App_Code
文件夹和Web.Config
)会在修改后立即重置应用程序。
如果不是这种情况,则可能是代码逻辑问题。尝试使用属性重构会话变量的读/写:
private string MySessionVar {
get { return (string)Session["MySessionVar"]; }
set { Session["MySessionVar"] = value; }
}
然后将断点添加到getter和setter并运行代码以检查导致会话变量被覆盖的原因。如果您使用它们,请务必检查用户控件。
此外,如果变量仅用于当前页面,您可以考虑使用Viewstate
变量。