我开发了一个窗口应用程序,我还创建了一个服务。我在窗口应用程序中使用编码启动服务,但是我收到一个错误,例如无法在计算机上打开窗口服务'.'
我使用了以下代码。
ServiceController controller = new ServiceController("SeoMozScheduleService");
if (controller.Status == ServiceControllerStatus.Stopped)
{
controller.Start();
}
如果我右键单击“应用程序”并单击“以管理员身份运行”,那么它对我来说运行正常...
答案 0 :(得分:16)
要在每次打开应用程序时自动执行此操作,您必须add a manifest file到解决方案,然后更新文件中的requestedExecutionLevel
节点,如下所示:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
但是,如果启用了UAC,更改此设置将导致系统每次都以管理员身份提示您运行应用程序。
答案 1 :(得分:11)
转到 c:// Program Files / ApplicationFolder / .exe 右键单击.exe并转到Properties,然后转到Compability选项卡并选中true以管理员级别运行此程序。
答案 2 :(得分:3)
如果您正在使用visual studio,请关闭它并重新打开visual studio并以管理员身份运行
答案 3 :(得分:2)
这些解决方案都没有对我有所帮助,因为如果我确实首先确保我在目标计算机上拥有管理员访问权限,那将会有所帮助!我正在使用我的域管理员帐户取消管理员访问我的主帐户。当我运行一些ServiceController
代码检查服务是否在远程计算机上运行时,在域管理员帐户下,一切都很好。当我将其作为我的主帐户时,即使以管理员身份运行Visual Studio,它也无效。结果我在本地管理员组中没有我的主帐户进行测试... d'oh!
答案 4 :(得分:1)
我遇到了服务器上的计划任务 - 检查“以最高权限运行”解决了它。 (当然,服务帐户必须具有管理权限才能使用。)
答案 5 :(得分:0)
app.conf中的框架版本更改为系统上安装的版本,为我解决了这个问题。
答案 6 :(得分:0)
应用程序可能不需要要求管理员权限。 Microsoft管理控制台(MMC)(包括“服务”管理单元)不包含。 MMC的清单具有:
<requestedExecutionLevel
level="highestAvailable"
uiAccess="false"
/>
它没有level="requireAdministrator"
。
有关向项目添加清单的说明,请参见c# - How do I create/edit a Manifest file? - Stack Overflow。
关于最低特权原则的文章很多,包括以下内容。