当您执行 IIS 重置时,IIS 是否会记录正在进行的请求?

当您执行 IIS 重置时,IIS 是否会记录正在进行的请求?

如果执行了 IIS 重置,当前正在处理但尚未完成的请求是否会记录在 IIS 日志中?

并且,已经完成但尚未刷新到日志文件的请求是否仍会写入文件中?

答案1

我猜不是,因为所有内存中的会话状态也会丢失。根据 Microsoft 文档启动或停止 Web 服务器 (IIS 8)

当您想停止 Web 服务器提供内容时(例如升级应用程序时),可以停止 IIS。要停止 Web 服务器,必须停止 Windows 进程激活服务 (WAS) 和万维网发布服务 (W3SVC)。然后,当您准备好让 Web 服务器再次提供内容时,可以启动 Web 服务器。

当您停止 WAS 和 W3SVC 时,连接到 Web 服务器的所有会话 被删除。所有内存中的会话状态都将丢失。在这些服务重新启动之前,所有网站都不可用。因此,如果可以,请避免停止并重新启动 Web 服务器。

关于IIS 重置活动

IISreset.exe 是一个命令行实用程序,可用于停止、启动和重新启动 IIS Internet 服务。

注意:重新启动或停止 IIS,或者重新启动 Web 服务器,都是非常严重的操作。使用 IISreset 后,您的网站和应用程序将不可用,连接到您的 Web 服务器的所有会话 删除后,您将丢失应用程序中的现有状态。更改 元数据库可能会丢失。直到受影响的互联网服务重新启动后,您的网站和应用程序才可用。

IISreset 命令停止并重新启动 IIS 管理服务、Windows 进程激活服务 (WAS) 和万维网发布服务 (WWW 服务)。

除非绝对必要,否则请避免使用 IISreset。相反,请先尝试重新启动可能导致问题的单个网站或单个应用程序池。

IIS 日志概述

... 当发生可记录事件(通常是 HTTP 事务)时,IIS 会调用选定的日志模块,然后将其写入存储在 %SystemRoot%\system32\Logfiles\ 中的日志之一。

据我所知,首先,必须完成 HTTP 事务才能记录下来,然后日志服务也必须运行,直到完成写入。因此,在停止和启动之间,正在进行的请求存在灰色区域,并且完全写入日志的机会很小。这还取决于相关服务在关闭前要等待多长时间。

答案2

IIS 重置执行干净的服务重启,这样日志文件就可以正确关闭。

这不像你杀死进程。(或者如果由于扩展问题而无法完成重启,因为在这种情况下该过程也会挂断并完成终止)

相关内容