c# - 以编程方式重新启动 IIS

标签 c# .net iis process uac

我需要从 C#/.NET 应用程序重新启动 IIS。这似乎是一个微不足道的问题,但到目前为止我还没有成功,this question 也没有任何答案。有效果。

我是机器的本地管理员。

我已经试过了:

var process = new Process
{
   StartInfo =
   {
       Verb = "runas",
       WorkingDirectory = @"C:\Windows\System32\",
       FileName = @"issreset.exe"
   }
};
process.Start();

但这会引发 Win32Exception - 找不到指定的文件。 我还尝试了将整个路径放入 FileName 并使用 UseShellExecute 的各种组合 但这些选项都没有帮助。

我也试过通过命令行调用它:

var process = new Process
{
   StartInfo =
   {
       Verb = "runas",
       WindowStyle = ProcessWindowStyle.Hidden,
       FileName = @"cmd.exe",
       Arguments = "/C iisreset"
   }
};
process.Start();

这行得通,但它给出了一个 UAC 提示,我不能有这个提示,因为这个应用程序将在没有用户干预的情况下运行。

还有什么我可以尝试的吗?

最佳答案

在解决方案资源管理器中右键单击项目名称 -> 添加 -> 新建项 -> 应用程序 list 文件。

在里面编辑

    <requestedPrivileges>
       <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
    </requestedPrivileges>

这应该可以解决您的问题。

关于c# - 以编程方式重新启动 IIS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19103599/

相关文章:

sql-server - 如何通过 IIS 启动 SQL Server LocalDB

c# - F# 列表到 C# IEnumerable : most efficient method?

c# - 使用 lambda 表达式连接表

c# - 具有流畅界面的 CaSTLe 拦截器

.net - EF 5 : Compare two lists of entities and perform insert, 更新,删除需要的地方

c# - 在 WPF 中查看 Word 文档

c# - Blazor MudSelect @bind-SelectedValues 到 id 和 value

c# - 具有多态数组的 WCF 客户端调用方法失败

asp.net - ASP.NET web.config 中的 SSL 规则异常

asp.net - 如何强制编译 ASP.NET MVC View ?