ASP.NET AWS EC2 上的会话持久性

本文关键字:会话 持久性 EC2 NET AWS ASP | 更新日期: 2023-09-27 18:33:17

我尝试使用亚马逊云科技EC2来测试我正在开发的IIS/ASP.NET应用程序,并且我已经登录了,但 ASP.NET 会话似乎在重新加载页面或移动到另一个页面时无法维护。

从我的登录表单页面Page_Load代码(会话设置正确,直到我移动页面或刷新登录表单页面)

protected void Page_Load(object sender, EventArgs e)
            {
                    if(Page.IsPostBack)
                    {
                            NameValueCollection nvc = Request.Form;
                            string username = nvc["username"];
                            string password = nvc["password"];
                            Hydra.WebService1SoapClient client = new Hydra.WebService1SoapClient();
                            string sid = client.LoginSession(username, password);
                            if (sid != "Incorrect details")
                                    HttpContext.Current.Session["loggedin"] = true;
                            else
                                    HttpContext.Current.Session["loggedin"] = false;
                    }
            }

下面是我的显示页面显示会话数据。

      <% if (HttpContext.Current.Session["loggedin"] == null || (bool)HttpContext.Current.Session["loggedin"] == false)
               { %>
            <a class="menu" href="register.php">Create Account</a>
            <% } else { %>
            <a class="menu" href="hd.php">Dashboard</a>&nbsp;<a class="menu" href="ticketlist.php">Tickets</a> <a class="menu" href="admin/index.php">Admin</a>
            <% } %>
            Value: <% Response.Write("" + HttpContext.Current.Session["loggedin"] + " <br /> SID? " + HttpContext.Current.Session.SessionID);  %>

我已经在本地 IIS 系统上对此进行了测试,它工作正常(会话是持久的)。

那么我的问题是:AWS 上的某些内容是否不像 InProc 会话状态存储,或者问题还有其他原因?

ASP.NET AWS EC2 上的会话持久性

如果您运行的是单个 ec2 服务器,它应该没有什么独特之处;我一直在 AWS 上执行此操作,它的行为与非 AWS 服务器完全相同。

您是否有可能在微实例上运行,将其推向极限,并且它不断回收 - 从而失去其状态?