小编Ahm*_* Th的帖子

ASP.Net ReadOnly Session

我进行了以下简单的测试:

  1. 在web.config中,我们有:`sessionState timeout = 40 mode = InProc`
  2. 在页面标记中设置`EnableSessionState ="ReadOnly"的空页面
  3. 代码背后:
protected void Page_Load(object sender, EventArgs e)
{

    if (Session["dt"] == null)
        Session["dt"] = DateTime.Now;

    Session["dt"] = ((DateTime)Session["dt"]).AddYears(1);
    Response.Write(Session["dt"].ToString());
}
Run Code Online (Sandbox Code Playgroud)

并发回发的结果如下:

1- 13/11/2015 10:00:00
2- 13/11/2016 10:00:00
3- 13/11/2017 10:00:00
4- 13/11/2018 10:00:00
5- 13/11/2019 10:00:00
6- 13/11/2020 10:00:00
...

这清楚地表明会话变量正在更新.在MSDN上,您可以找到以下内容:http: //msdn.microsoft.com/en-us/library/ms178581(v = vs.100).aspx

您可以通过将会话状态模式设置为Off来禁用应用程序的会话状态.如果要仅为应用程序的特定页面禁用会话状态,可以将@Page指令中的EnableSessionState值设置为false.EnableSessionState值也可以设置为ReadOnly,以提供对会话变量的只读访问.

我们几乎在应用程序的每个页面上执行读/写操作.但是,这会阻止同时为同一客户端运行两个http请求.第一个请求应该完成,直到服务器处理第二个请求.经过一些研究,显然是由于会话的独占锁定.为了好奇,我们尝试将会话状态设置为ReadOnly,似乎仍然可以编辑,没有定义独占锁.

问题:

1- Readonly是否意味着Readonly(因此这里有一个asp中的错误)或者其他的东西?

2-只要会话似乎可以使用ReadOnly状态编辑,有什么可担心的,你认为在生产环境中继续使用它是否安全?

谢谢

asp.net httpsession inproc

7
推荐指数
1
解决办法
3769
查看次数

标签 统计

asp.net ×1

httpsession ×1

inproc ×1