![配置 IIS 7 以在 HTTP 错误时创建 Windows 事件(或触发操作)](https://linux22.com/image/747687/%E9%85%8D%E7%BD%AE%20IIS%207%20%E4%BB%A5%E5%9C%A8%20HTTP%20%E9%94%99%E8%AF%AF%E6%97%B6%E5%88%9B%E5%BB%BA%20Windows%20%E4%BA%8B%E4%BB%B6%EF%BC%88%E6%88%96%E8%A7%A6%E5%8F%91%E6%93%8D%E4%BD%9C%EF%BC%89.png)
如何配置 IIS 7所以创建 Windows 事件每次发生 HTTP 错误?
我发现最接近的东西是这样的:https://docs.microsoft.com/en-us/previous-versions/iis/6.0-sdk/ms524984(v%3Dvs.90)。它描述了两个配置变量AspErrorsToNTLog
和AspLogErrorRequests
。但是我无法强制 IIS 为 HTTP 错误创建事件。我甚至不确定这些是否适用,因为文档仅提到 ASP 错误,而没有提到 HTTP 错误。
AspErrorsToNTLog
当设置为 TRUE 时,此属性指定ASP 错误都记录到事件查看器和 IIS 日志文件中。
当设置为 FALSE 时,此属性指定ASP 错误仅记录到 IIS 日志文件。
记录到文件工作正常。在 中c:\inetpub\logs\LogFiles\...\u_ex200123.log
,我们有这样的预期行(注意500
行尾附近)
2020-01-23 05:38:06 ip-address GET /MyService/ param1=value1¶m2=value2|-|ASP_0146|New_Session_Failed 80 - ip-address - 500 0 0 545
为了避免 XY 问题:当某些 Web 服务返回 HTTP 状态 500 时,我们希望使用它来触发某个操作(例如向操作部门发送电子邮件)。
答案1
您可以使用(免费)第三方软件来实现这一点。事件哨兵(Light) 是能够通过监控实际日志文件并过滤出现的任何文本来实现这一点的产品之一。您无需在 IIS 端执行任何操作 - 只要它记录到日志文件即可。
我实际上找到了一个屏幕截图,可以引导你完成这个过程:https://youtu.be/1Cu_e1PkI2w。