最佳答案
我在页面类中定义的静态变量中保存了一些信息(Global.asax 中没有)。我只在以下代码中声明变量:
protected static int SomeGlobalUnsecureID;
protected static string SomeGlobalUnsecureString;
并在 PageLoad 事件中定义变量。例如,我从数据库中检查 ID,如果它与 Some GlobalUnsecureID 不同,我就从其他地方更新 Some GlobalUnsecureID 和 String,否则就让它们保持原样。这在我的应用程序里是绝对安全的。逻辑(即这些数据不安全,每个人都可以访问它们,没有问题) ; 我唯一想完成的事情是
无论用户是否连接,都保持相同的内存量
当且仅当持久信息与 “内存”(因为实际读取字符串是非常耗时的 我
现在,因为我在 PageLoad 中进行了检查,所以在重新加载页面时没有任何问题。然而,我的页面充满了 WebMethod,有时我看到静态变量被归零。奇怪的是,即使静态变量为零(所以-> 没有服务器或应用程序) ,会话仍然是活动的。水池重新启动等)
这对我来说真的很奇怪。我假设静态变量将保持它的值,直到应用程序(以某种方式)结束。但是即使 Session 没有过期,静态变量也被归零。你有什么建议?使用应用程序变量是更好的选择吗?我在网上看到的所有文档都建议使用静态变量而不是应用程序变量,我是否需要声明它们有所不同?