C# 使用ServerManager读取IIS站点时如何避免UAC
我正在使用C# 使用ServerManager读取IIS站点时如何避免UAC,c#,iis,uac,servermanager,C#,Iis,Uac,Servermanager,我正在使用Microsoft.Web.Administration中的ServerManager来阅读和操作IIS站点。不幸的是,这似乎需要UAC,是否有办法解决这一问题,或者我必须接受这样一个事实,即在执行此操作之前,我必须征求用户的许可 var server = new ServerManager(); var site = server.Sites.FirstOrDefault(s => s.Name == "websiteName"); site.Stop(); 您可以做两件事,
Microsoft.Web.Administration
中的ServerManager
来阅读和操作IIS站点。不幸的是,这似乎需要UAC,是否有办法解决这一问题,或者我必须接受这样一个事实,即在执行此操作之前,我必须征求用户的许可
var server = new ServerManager();
var site = server.Sites.FirstOrDefault(s => s.Name == "websiteName");
site.Stop();
您可以做两件事,如果您的程序是自治的,您可以设置一个计划任务并将其设置为“系统”运行 或者,如果您需要能够与应用程序交互,您可以构建一个实际执行所有工作的控制台应用程序,一直运行该应用程序,就像上面所述,将其作为一个计划任务作为系统运行 这可以称为MyAppService(虽然您不必构建服务器应用程序,但控制台应用程序也可以) 然后,构建一个应用程序,该应用程序具有您想要执行的所有按钮和各种功能,并让它请求MyAppService完成的工作。第二个应用程序可以作为标准用户运行,因为所有提升的工作都由服务完成 我以前通过命名管道做过,效果不错
我希望这是有道理的 实际上,我最终使用任务来启动我的程序,所以我不需要UAC专门向用户请求许可