4

IIS 的应用程序池设置在“固定请求数”后进行回收有什么影响?

假设这个数字是 100,第 99 个人连接到我的网站,那么第 100 个人来了,会触发应用池回收。

这是否意味着会话 1-99 的所有会话信息都将丢失(当应用程序池工作进程重新启动时,进程内会话将过期)?

4

2 回答 2

4

你基本上是对的,但不是人,而是请求。在您的应用程序上调用的每个 aspx 页面都会加起来,当达到阈值时,应用程序池将被回收,应用程序域(如果您使用 .Net)被卸载并且一切都重新启动。你失去了会话、应用程序和周围的任何静态变量。如果您使用经典的 asp 或 php,每个会话和全局变量也会丢失。

命中次数阈值有点矫枉过正。您应该禁用它或将其设置为一个巨大的数字。默认情况下,如果我没记错的话,如果没有请求,IIS6 应用程序池每 15 分钟回收一次,您还可以对应用程序使用的总内存设置阈值以触发回收。

于 2009-06-06T08:57:02.773 回答
3

这是完全正确的。如果您不使用某种 Session farm 或数据库支持 session 信息,那么在应用程序池回收时它会丢失。我建议尽量不要需要任何会话信息——这将使您的应用程序更具可扩展性和可靠性,因为它更接近于底层 HTTP 的无状态特性。

于 2009-06-06T08:58:11.723 回答