【问题标题】:cannot open window service on computer '.' in window application无法在计算机“。”上打开窗口服务在窗口应用程序中
【发布时间】:2013-01-08 05:35:23
【问题描述】:

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

我使用了下面的代码。

ServiceController controller = new ServiceController("SeoMozScheduleService");

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

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

【问题讨论】:

  • 如果您发布了实际消息,而不是“喜欢”消息的错误,这将有所帮助。 '。'有时可以用来表示本地机器。
  • 实际错误信息是什么?
  • 服务能正常启动吗?
  • 我遇到了一个错误,比如无法在计算机“.”上打开 SeoMozScheduleService。
  • 是的代码很好..但我不认为这是用户必须右键单击并单击以管理员身份运行的解决方案

标签: c# windows-services windows-applications


【解决方案1】:

要在每次打开应用程序时自动执行此操作,您必须将 add a manifest file 设置为您的解决方案,然后将文件中的 requestedExecutionLevel 节点更新为如下所示:

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

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

【讨论】:

  • 这对我不起作用。只需以管理员身份运行 Visual Studio 或可执行文件即可解决问题。
【解决方案2】:

转到 c://Program Files/ApplicationFolder/.exe 右键单击.exe 并转到Properties,然后转到Compatibility Tab 并检查Run this Program as an administrator Level 是否为真。

【讨论】:

  • 我没有足够的声誉来投反对票,所以我只是在这里发表评论并说提升权限永远不是正确的解决方案,因为您的用户可能没有管理员权限。
  • 我以管理员身份在控制台中运行它,以及以管理员身份运行服务......并且服务确实安装了,但直到我设置了该属性才开始。哇,这是一种解脱!谢谢!
  • 我同意 Jaider。有许多不涉及用户的服务器情况,但自动化任务在单个用户下运行。这就是 stackoverflow 之美的一部分——多个答案,其中一个可能最适合您的环境。
  • 只是在 web-api 中执行此操作 - 不可能以管理员身份运行(在我的情况下为调试)...
  • @Tsury 除了你说的,当较低的权限足够时自动使用管理员权限只是不好的做法,对吧?
【解决方案3】:

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

【讨论】:

    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          【解决方案7】:

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

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

          它没有level="requireAdministrator"

          有关向项目添加清单的说明,请参阅 c# - How do I create/edit a Manifest file? - Stack Overflow

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

          【讨论】:

            猜你喜欢
            • 2013-09-27
            • 2012-10-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-06-25
            • 1970-01-01
            相关资源
            最近更新 更多