gpt4 book ai didi

c# - 如何验证我的 C# 代码在管理员模式下运行 IISRESET 命令

转载 作者:行者123 更新时间:2023-11-30 22:19:02 24 4
gpt4 key购买 nike

我创建了一个 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);

在应用程序事件日志中我得到这些:

Listener Adapter protocol 'net.tcp' successfully connected to Windows Process Activation Service.

Listener Adapter protocol 'net.pipe' successfully connected to Windows Process Activation Service.

在系统事件日志中我得到这些:

IIS start command received from user testing\neil.kenny. The logged data is the status code.

在我看来一切都很好,但我仍然不确定它是否真的进行了重置。它可能只是运行了 iisreset 命令,然后输出访问被拒绝的消息。

我如何正确验证这一点?

最佳答案

如果您想手动测试它:

  • 我首先想到的是让浏览器保持打开状态,并重置 IIS 上的任何站点。一直按F5。网站将关闭,很快就会再次启动。
  • 检查事件查看器并查找指示 IIS 已重新启动的事件条目(检查系统 日志)。这question可能有帮助。给你一张照片。一图胜千言:

enter image description here

具体要查找的内容:

  • 多个事件表明某些服务已停止。来源是服务控制管理器。在其中找一句“万维网发布服务进入停止状态”
  • 来自源 IIS-IISReset 的事件,内容为 “从用户 xxxx 收到的 IIS 停止命令”
  • 表示某些服务已启动的几个事件。来源是服务控制管理器。其中找一句“万维网发布服务进入运行状态”
  • 来自源 IIS-IISReset 的事件,内容为 “从用户 xxxx 收到的 IIS 启动命令”

关于c# - 如何验证我的 C# 代码在管理员模式下运行 IISRESET 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15782151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com