我有一个会话具有数字内容的片段,它会变为3但是当它收到3时它会发送给client.this会话必须在1分钟内超时但是直到会话没有超时该程序正常工作但是当会话过期而新会话想要创建我得到system.invalidoperationexception什么是问题????我的代码?
string ip = HttpContext.Current.Request.UserHostAddress;
HttpContext failuser = HttpContext.Current;
failuser.Session.Timeout =1;
if (failuser != null)
{
if (failuser.Session[ip] != null)
failuser.Session[ip] = (int)failuser.Session[ip] + 1;
else
failuser.Session[ip] = 1;
//
retval = failuser.Session[ip].ToString();
if ((int)failuser.Session[ip] > 2)
{
retval = "!";
}
答案 0 :(得分:0)
到期后,您将无法维持任何会话状态 会话超时1分钟非常小。保持在5分钟以上的高度。
不允许会话超时,而不是将会话恢复到超时后的状态会更容易。
由于您已经在使用WebMethods,因此可以通过在会话到期之前回发来延长会话的生命周期。 (确保保持绝对超时,例如,如果您的用户处于非活动状态,则在30分钟后)。