IISReset 是做什么的?

在 IIS6上,IIS 重置会做什么?

请比较回收一个应用程序池和停止和启动一个 ASP.NET 网站。

如果在 ASP.NET 网站上替换 DLL 或编辑/替换 web.config,是否等同于停止和启动该网站?

120198 次浏览

它停止并启动 IIS 所包含的服务。

你可以把它看作是关闭相关的程序并重新启动它。

当您更改 ASP.NET 网站的配置文件时,它将重新启动应用程序以反映更改..。

执行 IIS 重置时,将重新启动在该 IIS 实例上运行的所有应用程序。

IISReset 停止并重新启动整个 Web 服务器(包括非 ASP.NET 应用程序)
回收应用程序池只会影响在该应用程序池中运行的应用程序。
在 web 应用程序中编辑 web.config 只会影响到该 web 应用程序(只回收该应用程序)。
在机器上编辑 machine.config 将会回收所有正在运行的应用程序池。

IIS 将监视应用程序的/bin 目录。无论何时检测到这些 dls 的变化,它都会回收应用程序并重新加载这些新的 dls。它还以相同的方式监视 web.config & machine.config,并对适用的应用程序执行相同的操作。

应用程序池回收重新启动 w3wp.exe 进程 那个应用程序池,因此它只会影响在该应用程序池中运行的网站。

IISReset 重新启动所有 w3wp.exe 进程和任何其他与 IIS 相关的服务,即 NNTP 或 FTP 服务。

我认为更改 web.config/bin不会回收整个应用程序池,但我不确定这一点。

编辑 web.config文件或更新 bin文件夹中的 DLL 只是回收该应用程序的辅助进程,而不是整个池。

IISReset 重新启动整个 webserver (包括所有相关的站点)。如果你只是想重置一个 ASP.NET 网站,你应该回收那个 AppDomain。

重置 ASP.NET 网站最常用的方法是编辑 web.config 文件,但是你也可以用以下方法创建一个管理页面:

public partial class Recycle : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
HttpRuntime.UnloadAppDomain();
}
}

这是我写的一篇博客文章,其中包含更多信息: 在 ASP.NET 应用程序中避免 IISRESET

它操作整个 IIS 进程树,而不仅仅是应用程序池。

C:\>iisreset /?


IISRESET.EXE (c) Microsoft Corp. 1998-1999


Usage:
iisreset [computername]


/RESTART            Stop and then restart all Internet services.
/START              Start all Internet services.
/STOP               Stop all Internet services.
/REBOOT             Reboot the computer.
/REBOOTONERROR      Reboot the computer if an error occurs when starting,
stopping, or restarting Internet services.
/NOFORCE            Do not forcefully terminate Internet services if
attempting to stop them gracefully fails.
/TIMEOUT:val        Specify the timeout value ( in seconds ) to wait for
a successful stop of Internet services. On expiration
of this timeout the computer can be rebooted if
the /REBOOTONERROR parameter is specified.
The default value is 20s for restart, 60s for stop,
and 0s for reboot.
/STATUS             Display the status of all Internet services.
/ENABLE             Enable restarting of Internet Services
on the local system.
/DISABLE            Disable restarting of Internet Services
on the local system.

这就是技术对 重置的评价

在某些配置更改生效之前或应用程序不可用时,可能需要重新启动 Internet 信息服务(IIS)。重新启动 IIS 与首先停止 IIS,然后再重新启动它相同,只不过它是通过单个命令完成的。

IISReset 重新启动整个 webserver (包括所有相关的站点)。如果您只是想重置一个 ASP.NET 网站,那么您应该回收该应用程序域。