当 IIS 站点启动或停止时写入 Windows 事件日志

当 IIS 站点启动或停止时写入 Windows 事件日志

我可以将 IIS 7.5 配置为在 Web 服务器上的某个站点启动或停止时写入 Windows 事件日志吗?例如,当有人通过 IIS 管理器用户界面启动/停止某个站点时。

我知道我可以为每个网站配置 Application_On{Start,End},以便将自定义消息写入 Windows 事件日志,但我只是想知道是否已经内置了一些东西。我也知道激活应用程序池回收的日志记录,但这与启动/停止网站不同,特别是当多个网站共享同一个应用程序池时。

特别是如果它列出了启动/停止该网站的用户的姓名,那将会非常有帮助。

我已经尝试过的一件事是启用对 IIS-Configuration>{Administrative, Operational} 事件日志的记录,但不幸的是,启动/停止时那里没有出现任何内容。

答案1

有几件事。当我启用 Microsoft-Windows-IIS-Configuration/Operational 事件日志时,我确实会在网站启动或停止时收到事件。我收到“详细”事件 29,内容如下:

对‘MACHINE/WEBROOT/APPHOST’处‘/system.applicationHost/sites/site[@name="Default Web Site" and @id="1"]/@state’的更改已成功提交。

这是在 Server 2008 R2 上。现在这不会告诉您网站是已启动还是已停止,而只是表明它已更改状态。如果您监视该日志,可能会有所帮助。

很久以前我写过这篇文章:http://www.eventsentry.com/blog/2010/02/how-to-really-monitor-smtp-pop.html。这是一个 VBScript,它会枚举 IIS 中的虚拟目录并告诉您其中一个目录何时停止。这在 2003 上有效,但不幸的是在 2008 上无效。这可能是一个起点,我会在某个时候重新审视这一点,以便我们可以更新脚本。

这不是答案,但可能会让你更接近你想要实现的目标。你肯定会需要一些脚本(可能由上述事件触发)来枚举站点及其状态。

答案2

查看事件日志 ID 29 的 XML 视图。您可以看到 OldValue 和 NewValue 从一种状态变为另一种状态

旧值>开始 新值>停止

\?\C:\Windows\system32\inetsrv\config\applicationHost.config MACHINE/WEBROOT/APPHOST /system.applicationHost/sites/site[@name="默认网站" and @id="1"]/@state 1 正在启动 已停止

答案3

您要执行的操作并非内置于 Windows/IIS 中。

我认为唯一接近的方法就是查看日志头重写的时间。日志头重写时会显示开始和结束,因此您可以大致了解重写时间,但不知道重写者是谁。

因此,我很遗憾地再说一遍,不行。

相关内容