我尝试使用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> <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会话状态存储不一样,还是存在其他问题原因?
答案 0 :(得分:2)
如果您运行的是单个ec2服务器,那么它应该没有任何独特之处;我在AWS上一直这样做,它的行为与非AWS服务器完全相同。
你是否有可能在微型实例上运行,将其推向极限,并且不断回收 - 从而失去其状态?