我计划开始使用Out-Of-Proc会话状态(使用NCACHE)用于会话密集型的Web应用程序(许多内容可以降级为viewstate)。我们需要做的初步审查很简单(只是验证插入了什么对象),但困难的部分是验证如果有人从会话中获取对象然后更新对象会发生什么。 问题:该对象会自动更新会话包吗?或者我是否必须使用新的更新版本再次更新会话包?如果使用State Server vs Sql Server,它会有所不同吗?
只是一些基本的例子:
private void Page_Load(object sender, System.EventArgs e)
{
MyClass c = (MyClass)Session["c"];
if (c != null)
Response.Write(c.Comments);
if (!Page.IsPostBack)
{
c = new MyClass();
c.Comments = "No Postback " + DateTime.Now.ToString("hhmmssff");
Session["c"] = c;
}
else
{
c = (MyClass)Session["c"];
if (c != null)
{
c.Comments = "Postback " + DateTime.Now.ToString("hhmmssff");
}
}
}
我相信上面的代码不会更新会话(所以在以后的回发中我总会看到相同的值)。但是,它确实!!!所以我不确定为什么?我读了很多网址,人们说会话没有更新,他们需要做一次明确的覆盖。
我正在进行的测试是ASPNET1.1 Web应用程序,其中状态服务器配置为我的LAN IP地址(不是localhost或127.0.0.1)。
感谢您的关注, KAT LIM