我正在使用
Microsoft.Web.Administration
库来管理 IIS 站点和应用程序池,它效果很好。但是,我需要能够控制事件日志记录的配置方式,以确保某些事件确实生成 ETW 条目。
我正在谈论能够通过代码更改此特定设置(我在此处显示 IIS 管理器的 UI):
在 C# 中通过
ServerManager
执行此操作的正确方法是什么?
以下 C# 代码可以在 IIS 中将
Log Event Destination
设置为 ETW event only
。
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample {
private static void Main() {
using(ServerManager serverManager = new ServerManager()) {
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection sitesSection = config.GetSection("system.applicationHost/sites");
ConfigurationElement siteDefaultsElement = sitesSection.GetChildElement("siteDefaults");
ConfigurationElement logFileElement = siteDefaultsElement.GetChildElement("logFile");
logFileElement["logTargetW3C"] = @"ETW";
serverManager.CommitChanges();
}
}
}