强制快速停止IIS 7.5或应用程序池

我们有一个繁忙的networking服务器处理大约1000个asp.net请求/秒。

我们有一个部署脚本,从我们的开发箱中复制编译好的asp.net。

该脚本首先停止生产服务器上的IIS,复制代码,然后重新启动。

我们使用以下命令来停止该网站的应用程序池:

%windir%\ system32 \ inetsrv \ appcmd stop apppool /apppool.name:ourappname

问题是这停止接受新的请求,但等待现有的请求完成。 通常会有一些请求花费一分钟才能完成,在这段时间内没有新的请求被提供。 所以为了达到十几个要求,我们错过了在一分钟左右的时间里,一直到12-20才完成的1000 * 60 = 60,000个请求。 这是愚蠢的。

我们想要做的是强制一个应用程序池在x秒内停止。 这似乎不可能。 有没有更好的方法来完成我们正在做的事情,即iis 7的快速停止?

为什么你需要停止并重新启动应用程序池? 更新bin目录中的文件将导致应用程序池在相关点重新启动。 完成部署后,如果未更新bin中的任何内容,则对we​​b.config文件进行更改将导致重新启动应用程序池。

如果你需要把它放下来,那么你可以在IIS级别(w3wp服务)这样做。

net stop w3wp #Deploy net start w3wp