0

我有一个片段,会话具有数字内容,它增加到 3,但是当它收到 3 时它发送给客户端。这个会话必须在 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 = "!";

               }
4

1 回答 1

0

您将无法在会话到期后维护任何会话状态。
1 分钟的会话超时非常小。将其保持在更高的时间,例如 5 分钟。

不允许会话超时,而不是将会话恢复到超时后的状态会容易得多。

由于您已经在使用 WebMethods,您可以通过在会话到期前回发来延长会话的生命周期。(请务必保持绝对超时,如果您的用户处于非活动状态,则在 30 分钟后说)。

于 2012-09-02T11:08:49.493 回答