【问题标题】:Error in installing Windows service developed in .NET安装 .NET 开发的 Windows 服务时出错
【发布时间】:2011-01-13 10:15:02
【问题描述】:

我使用 C# 和 Visual Studio 2008 开发了一个 Windows 服务。我的机器上安装了Windows XP SP2。当我尝试使用 installutil 工具安装服务时,输入用户名和密码后,出现以下错误。

安装阶段发生异常。 System.ComponentModel.Win32Exception: 帐户名无效或不存在,或指定帐户名的密码无效。

但用户确实存在。我通过控制面板→用户帐户创建新帐户创建了用户。

我用于安装服务的命令是:

installutil /i TestService.exe

我该如何解决这个问题?

【问题讨论】:

    标签: c# windows-services user-accounts


    【解决方案1】:

    如果帐户是本地用户帐户,请在 installutil 提示输入用户名和密码时尝试使用.\username

    .\ 代表本地机器。

    服务需要完全限定的用户名(带域),因此在安装时您需要明确说明本地用户帐户。

    【讨论】:

    • 我意识到这个问题是一个老问题,但非常感谢!没想到。
    • 澄清一下,这意味着如果它是域用户,那么使用是domainName\username
    【解决方案2】:

    该帐户可能还需要被授予“作为服务登录”帐户权限;将SE_SERVICE_LOGON_NAME 常量传递给LsaAddAccountRights() API。

    【讨论】:

      【解决方案3】:

      我通过将 ServiceProcessInstaller.Account 更改为 LocalSystem 解决了这个问题,它对我有用。

      【讨论】:

      • 这不是一个答案......这似乎是一个评论
      • 更改帐户并不是最好的解决方案,但它不仅仅是一个“评论”
      • 这不是推荐的方法。本地系统在计算机上具有广泛的权限;它类似于管理员。有关内置帐户的概述,请参阅 this answer
      猜你喜欢
      • 2010-12-05
      • 2011-05-21
      • 2018-04-08
      • 2012-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-24
      • 1970-01-01
      相关资源
      最近更新 更多