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> <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 会话状态存储,或者问题还有其他原因?
如果您运行的是单个 ec2 服务器,它应该没有什么独特之处;我一直在 AWS 上执行此操作,它的行为与非 AWS 服务器完全相同。
您是否有可能在微实例上运行,将其推向极限,并且它不断回收 - 从而失去其状态?