我在Windows 2008 x64服务器,ASP.NET MVC和.NET framework 4上使用IIS 7.5。
如果我在运行Web应用程序并且用户登录时回收应用程序池,1)用户的会话和关联数据是否会被销毁,他们是否必须再次登录?并且,在我回收失败的那一刻,请求正在进行中,或者IIS会在执行回收之前完成这些请求吗?
在使用应用程序时,回收我的Web应用程序的应用程序池会有什么负面影响?
答案 0 :(得分:6)
如果您在内存中进行会话管理,那么您可能会遇到一些问题。如果您正在进行适当的会话管理(例如,在数据库中),那么用户应该没问题。当新应用出现并开始将内容加载到内存中以服务请求时,您将遇到速度减慢。
正在进行的请求有机会完成,但只有有限的机会(默认情况下它们有90秒)。
回收的缺点基本上分为两类:
您必须将所有内容重新加载到内存中(这需要时间,在此期间用户正在等待)。
长时间运行的请求将被终止(默认情况下,应用程序池有90秒完成其业务,类似于长文件上载/下载可能必须重新启动,因为它与循环重叠)。