我的组织有一个框架应用程序,运行在许多客户端服务器上,远程客户端通过HTTP进行连接。 服务器是Server 2008 R2,通常是一个虚拟机。 这些框中的一些还充当了DB服务器,SMTP服务器或AD服务器。
每隔一段时间,这个框架内的后台进程就会挂起。 一个IISReset / noforce可以做到这一点,并将其设置为每周计划任务,这意味着我们在几个月内还没有看到这个问题。
然而今天,我在这里和这里读到,这不是一个好的做法,我可能会重新启动应用程序池中的非HTTP进程将被中断。 一篇文章build议执行一个bat文件,这将使计划任务成为一件非常简单的事情。
我知道将/ noforce parm添加到IISReset会告诉它等待当前线程在重新启动之前退出,这似乎是非常重要的。 下面的蝙蝠会让当前的线程在停止之前完成吗? 它甚至重要吗?
@echo off net stop w3svc net stop IISAdmin net start IISAdmin net start w3svc @echo on
唯一的区别是我可以看到IISreset /noforce将等待最多1分钟的所有IIS服务重新启动,而IISpipe理器将等待最多5分钟。
http://technet.microsoft.com/en-us/library/cc758159(v=ws.10).aspx