在IIS中,有两个区域(嗯,两个以上)可以进行回收:
和
我的问题是:
我知道,当应用程序池被回收时,会启动一个新的工作进程,但我对在此过程中如何处理过期和有效会话感到困惑?传递给新的工作进程线程哪些被淘汰?它会做什么:
在回收之后,当用户A和用户B将要求他们的会话状态是什么时?
IIS的应用程序池设置为“固定请求数”后回收有什么影响?
假设这个数字是100,第99个人连接到我的网站,那么第100个人来了,就会触发应用程序池回收。
这是否意味着会话 1-99 的所有会话信息都将丢失(进程内会话将在应用程序池工作进程重新启动时过期)?
我刚刚推出了我的第一个MVC3应用程序,除了cookie授权外,一切正常.当用户访问我的站点并登录时,我使用有关该用户的数据设置.ASPAUTH cookie.它运作良好,直到一段时间过去.然后我必须再次登录,即使cookie在浏览器中,我可以看到过期设置为一年后.它在我的localhost上工作正常.在我看来,它不是将我的信息设置为cookie,而是以某种方式在会话中,但即使我在一小时内重新启动计算机,我仍然登录.但如果我不在1小时内访问网络,那么我退出了.
谢谢你的帮助.
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1,
requestedUser.Name,
DateTime.Now,
DateTime.Now.AddYears(1),
true,
string.Format("{0};{1};{2}", requestedUser.IDUser.ToString(), requestedUser.IsAdmin.ToString(), profilePicture));
string encryptedTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
cookie.Expires = keepLogged == "keepLogged" ? DateTime.Now.AddYears(1) : DateTime.Now.AddHours(1);
this.Response.Cookies.Add(cookie);
return RedirectToAction("Index", "Posts");
Run Code Online (Sandbox Code Playgroud)