AWS会话持续存在于AWS EC2上

时间:2014-12-04 17:22:34

标签: c# asp.net session amazon-web-services amazon-ec2

我尝试使用Amazon Web Services EC2来测试我正在开发的IIS / ASP.NET应用程序,并且我已经使用了登录但是ASP.NET会话似乎没有维护重新加载页面或移动到另一页。

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

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会话状态存储不一样,还是存在其他问题原因?

1 个答案:

答案 0 :(得分:2)

如果您运行的是单个ec2服务器,那么它应该没有任何独特之处;我在AWS上一直这样做,它的行为与非AWS服务器完全相同。

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