我在 Windows 2008 x64 服务器、ASP.NET MVC 和 .NET Framework 4 上使用 IIS 7.5。
如果我在我的 Web 应用程序正在运行且用户已登录时回收应用程序池,1) 用户的 session 和相关数据是否会被破坏,他们是否必须重新登录?而且,在我回收时正在进行的请求是否会失败,或者 IIS 会在执行回收之前完成这些请求?
在使用应用程序时回收我的 Web 应用程序的应用程序池有什么负面影响?
最佳答案
如果您在内存中进行 session 管理,那么您可能会遇到一些问题。如果您正在进行适当的 session 管理(例如,在数据库中),那么用户应该没问题。不过,随着新应用的出现并开始将内容加载到内存中以服务请求,您会遇到速度变慢的情况。
正在进行的请求有机会完成,但机会有限(默认情况下,它们有 90 秒)。
回收的缺点基本上分为两类:
您必须将所有内容重新加载到内存中(这需要时间,在此期间用户需要等待)。
长时间运行的请求将被终止(默认情况下,应用程序池有 90 秒的时间来完成其业务,像长文件上传/下载之类的东西可能必须重新启动,因为它与回收重叠)。
关于session - 回收 IIS 应用程序池是否会导致正在进行的 session 出现问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12148074/