zoukankan      html  css  js  c++  java
  • Session丢失浅析

    Session在很多情况下会丢失,主要有如下几种情况:

    1.目录删除,以及重命名操作

    2.Frame中关于Session丢失

    分析Session丢失原因,主要是因为站点目录文件更新导致应用程序重启,并且重新分配内存,所以保存在内存中的session自然会丢失。

    实际上在。net中,session主要有一些几种存储方式:

    <sessionState mode="InProc"></sessionState>//保存在内存中

    <sessionState mode="SQLServer"></sessionState>//保存在数据库中

    <sessionState mode="StateServer"></sessionState>//保存在进程中(ASP.NET 状态服务)

    很明显,要解决Session丢失的问题,我们可以选择将其保存到数据库或状态服务中。

    测试代码:

    C# 代码
    public partial class _Default : System.Web.UI.Page
    ...{
    protected void Page_Load(object sender, EventArgs e)
    {
    if (!this.IsPostBack) ...{
    Session[
    "A"] = "a";
    }

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
    try
    ...{
    Label1.Text
    = Session["A"].ToString();
    }

    catch ...{
    Label1.Text
    = "session已丢失";
    Session[
    "A"] = "a";
    }

    }

    }

    操作:删除目录,更改Global.asax文件,重启IIS等等,发现使用InProc模式Session丢失,而使用StateServer模式Session不会丢失。

  • 相关阅读:
    业余时间决定人生
    单片机好网站
    坚持 放弃
    励志博客园网址
    资料下载好网站
    和易法
    二、栈
    一、顺序表
    uCOS任务中的OSTCBDly
    三(1)、队列(链队列)
  • 原文地址:https://www.cnblogs.com/tomin/p/1329629.html
Copyright © 2011-2022 走看看