iisreset,回收,刷新和重新启动之间有什么区别?


53

在IIS7中,您可以执行许多操作来重新启动网站。我不清楚它们之间到底是如何关联的。

  • 从命令行运行iisreset
  • 刷新网站
  • 回收应用程序池
  • 重新启动网站

有人可以确切说明每个人的要求吗?

Answers:


60

iisreset将停止并启动万维网发布服务。当然,这适用于所有应用程序池。我确定您注意到为每个应用程序池创建了一个进程。此过程将处理与其关联的所有网站的请求。当你回收应用程序池,IIS将创建一个新的进程(保持旧的)服务请求。然后,它尝试在新流程上移动所有请求。超时后,旧进程将被自动终止。通常,您可以回收应用程序池以消除泄漏的内存(即使建议定期执行回收操作,但如果需要进行常规操作,则应用程序中可能会有问题)。至于重启网站,它只会停止然后重新启动该特定网站的服务请求。它将继续为同一应用程序池中的其他网站提供服务,而不会受到干扰。

如果您有面向会话的应用程序,则以上所有内容都会导致会话对象丢失。

刷新网站对服务/进程/网站没有影响,而仅仅是刷新树视图的UI命令(也许您添加了在管理控制台中看不到的目录)。


1
您有此信息的来源吗?
2015年

@JoshuaDrake这是一个非常漂亮的文章,解释IISRESET VS应用程序池回收fullsocrates.wordpress.com/2012/07/25/...
Rashmi潘伟迪

如果我有一个带有应用程序池的网站,并且有多个带有自己的应用程序池的应用程序文件夹,那么重新启动网站会重新启动所有应用程序池吗?
sonjz

一个应用程序池可以用于多个网站?还是一对一?
詹姆斯·维尔茨巴

5

要回答您另外两个问题:

  • 刷新网站只是从服务器重新加载数据
  • 重新启动网站并没有真正的作用。通过停止该网站,它将不再侦听有关其任何绑定的请求。再次启动将使其重新开始收听。为网站提供服务的进程不受影响。

4

iisreset停止并启动整个Web服务器。就是如此-在这种情况下,所有用户都将失去连接。

回收应用程序池将停止并启动与该池中与应用程序关联的进程。严格来说,它与网站没有任何关系(这些应用程序中的活动内容除外)。


1
刷新并重新启动怎么办?
2011年

1
邓诺(Dunno),我没有太多使用IIS 7,甚至没有IIS 6。帮助说他们做什么?
mfinni 2011年

2

@Vlad Mucescu给出了一个很好的答案,但似乎他描述了他所说的“重叠回收”应用程序的回收。有两种回收类型:流程回收和重叠回收(源MSDN):

流程回收

工作进程隔离模式提供了进程回收,IIS通过重新启动其工作进程来自动刷新Web应用程序。流程回收使有问题的应用程序保持平稳运行,并且在无法修改应用程序代码的情况下,这是一种特别有效的解决方案。
发生回收事件之后的过程回收可以两种方式发生。
如果当前为应用程序池提供服务的工作进程终止,则充当工作进程父进程的WWW服务(W3SVC)将在其位置重新启动新进程。
当工作进程终止时,将同时启动一个新进程。这种回收称为重叠回收。这是所有应用程序池的默认设置。

重叠回收

在重叠的回收方案中,以回收为目标的流程将继续处理所有剩余的请求,同时创建替换工作进程。在旧工作进程停止之前,将启动新进程,然后将请求定向到新进程。这种设计可防止服务延迟,因为旧进程将继续接受请求,直到新进程成功初始化为止,并且仅在新进程准备好处理请求之后才被指示关闭。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.