我创建了一个 Windows 服务来检查数据库中的错误,如果出现特定的错误,我希望它执行IISRESET
命令。
问题是,如果我在没有提升权限的情况下运行 IISRESET 命令,那么它实际上不会进行重置。所以我让我的代码做我想做的一切,但我不确定该IISRESET
命令是否以管理员身份运行,我不知道如何验证。
这是我的代码
ErrorCheckerEventLog.WriteEntry("Performing IISReset", EventLogEntryType.Warning);
Process process = new Process();
process.StartInfo.Verb = "runas";
process.StartInfo.FileName = "iisreset.exe";
process.StartInfo.UseShellExecute = true;
process.StartInfo.CreateNoWindow = false;
process.StartInfo.RedirectStandardError = false;
process.StartInfo.RedirectStandardOutput = false;
process.Start();
process.WaitForExit();
ErrorCheckerEventLog.WriteEntry("IISReset finished", EventLogEntryType.Information);
在应用程序事件日志中,我得到这些:
侦听器适配器协议“net.tcp”成功连接到 Windows 进程激活服务。
侦听器适配器协议“net.pipe”已成功连接到 Windows 进程激活服务。
在系统事件日志中,我得到这些:
从用户 testing\neil.kenny 收到 IIS 启动命令。记录的数据是状态代码。
这一切对我来说看起来都不错,但我仍然不确定它是否真的进行了重置。它可能只是运行了 iisreset 命令,然后输出拒绝访问消息。
我如何正确验证这一点?