[事件 ID 3206 — IIS 重置活动]
注意:重启或停止 IIS,或者重启 Web 服务器,都是非常严重的操作。重启 Internet 服务后,对配置数据库的更改可能会丢失。所有连接到 Web 服务器的会话都会被丢弃,Web 应用程序中保存的所有数据也会丢失。在 Internet 服务重启之前,所有 Internet 站点都将不可用。因此,不建议使用IISReset。
不建议在 IIS 6.0 上使用 IISReset,并且不支持在 IIS 7.0 或 IIS 7.5 上使用
在 Windows 2003 服务器上运行不带参数的 IISRESET 时,IISRESET 只会调用名为 IISRSTAS.EXE 的进程中托管的 COM 对象中公开的方法。
“重置 IIS”的主要操作在此 IISRSTAS 进程中完成,执行的代码包含以下内容:
停止 IISADMIN 服务
如果 IISADMIN 服务无法停止,则枚举所有进程,尝试查找并终止托管 IISW3ADM.DLL 的进程
大多数情况下,只会执行步骤 1),在 IIS6 上,IISRESET 与“NET STOP IISADMIN /Y”非常相似。但是,如果无法及时停止 IISADMIN 服务,则采取的操作非常粗暴:终止所有托管 IISW3ADM.DLL 的进程!在我的客户案例中,停止 IISADMIN 服务的请求失败,错误代码为 0x80070425(该服务目前无法接受控制消息),因此 IISRSTAS.EXE 开始枚举所有进程,试图查找托管 IISW3ADM.DLL 的进程。为了找到托管 IISW3ADM.DLL 的进程,IISRSTAS.EXE 必须调用 OpenProcess() 来枚举每个进程中加载的 DLL,而 OpenProcess() 调用在一个特定进程(RPCSS)上失败了。
最终的解决方案是使用 IISRESET /NOFORCE。在这种情况下,IISRESET 仅执行步骤 1),并且不会引发错误。
如果您仍想重启 IIS,可以使用 IISRESET /NOFORCE 命令。在 IIS6/Windows 2003 上,另一种方法是停止 IISADMIN 服务并重启 W3SVC:
NET STOP IISADMIN /Y && NET START W3SVC
如果您使用 IIS7+ 版本,您可以使用此命令(在 IIS7+ 上,IISADMIN 只是为了兼容 IIS6):
NET STOP WAS /Y && NET START W3SVC
如果您想停止 IIS 和 HTTP 传输(HTTP.SYS),您可以使用以下命令:
NET STOP HTTP /Y && NET START W3SVC
请注意,如果您要更改 SSL 配置,并且希望更改在不重新启动服务器的情况下生效(例如,如果您将根 CA 添加到计算机帐户证书存储区或更改某些 SSL 设置(如 SendTrustedIssuerList)),则上述命令非常方便
【版权声明】
本站部分内容来源于互联网,本站不拥有所有权,不承担相关法律责任。如果发现本站有侵权的内容,欢迎发送邮件至masing@13sy.com 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。