21

我开发了一个窗口应用程序,还创建了一项服务。我在窗口应用程序中使用编码启动服务,但出现错误,例如无法在计算机上打开窗口服务'.'

我使用了下面的代码。

ServiceController controller = new ServiceController("SeoMozScheduleService");

if (controller.Status == ServiceControllerStatus.Stopped)
{
    controller.Start();
}

如果我右键单击应用程序并单击以管理员身份运行,那么它对我来说很好......

4

7 回答 7

18

要在每次打开应用程序时自动执行此操作,您必须将清单文件添加到解决方案中,然后更新requestedExecutionLevel文件中的节点,使其如下所示:

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

但是,如果启用了 UAC,更改此设置将导致系统每次提示您以管理员身份运行应用程序。

于 2014-03-04T13:17:16.940 回答
10

转到 c://Program Files/ApplicationFolder/.exe 右键单击 .exe 并转到Properties然后转到Compatibility Tab并检查 true to Run this Program as an administrator Level

于 2013-01-30T09:37:23.557 回答
5

如果您使用的是 Visual Studio,请关闭它并重新打开 Visual sudio 并以管理员身份运行它

于 2013-10-01T13:10:02.857 回答
2

这些解决方案都没有帮助我,因为如果我确实确保我首先在目标计算机上具有管理员访问权限,这将有所帮助!我正在使用我的域管理员帐户取消并授予管理员对我的主帐户的访问权限。当我在ServiceController域管理员帐户下运行一些检查服务是否在远程计算机上运行的代码时,一切都很好。当我将其作为我的主帐户时,它就不起作用了——即使以管理员身份运行 Visual Studio 也是如此。原来我在本地管理员组中没有我的主帐户的情况下进行测试...... d'oh!

于 2017-10-17T18:33:32.613 回答
1

我在服务器上的计划任务中遇到了这个问题——检查“以最高权限运行”解决了它。(服务帐户当然必须具有管理员权限才能正常工作。)

于 2017-01-09T20:39:30.773 回答
0

app.conf 中的框架版本更改为系统上安装的版本为我解决了这个问题。

于 2014-07-25T06:52:59.217 回答
0

该应用程序可能不需要管理员权限。Microsoft 管理控制台 (MMC)(包括服务管理单元)没有。MMC 的清单具有:

<requestedExecutionLevel
    level="highestAvailable"
    uiAccess="false"
/>

它没有level="requireAdministrator"

请参阅c# - 如何创建/编辑清单文件?- Stack Overflow获取向项目添加清单的说明。

关于最小特权原则的文章非常多,包括以下几篇。

于 2020-03-18T19:38:28.040 回答