C# 安装Windows服务-帐户名和安全ID';一切都完成了

C# 安装Windows服务-帐户名和安全ID';一切都完成了,c#,service,windows-services,C#,Service,Windows Services,我有一个windows服务和安装项目。当我右键单击安装项目并单击“安装”时,提示我 用户名 密码 确认密码 我试过以下几种组合 .\MyUserName MyDomain\MyUserName 但它会返回以下错误 帐户名和安全ID之间未进行映射 ServiceProcessInstaller namespace TestService { [RunInstaller(true)] public partial class ProjectInstaller : System.C

我有一个windows服务和安装项目。当我右键单击安装项目并单击“安装”时,提示我

  • 用户名
  • 密码
  • 确认密码
我试过以下几种组合

.\MyUserName MyDomain\MyUserName

但它会返回以下错误

帐户名和安全ID之间未进行映射

ServiceProcessInstaller

namespace TestService
{
    [RunInstaller(true)]
    public partial class ProjectInstaller : System.Configuration.Install.Installer
    {

        public ProjectInstaller()
        {
            InitializeComponent();

            this.serviceProcessInstaller1.Account = ServiceAccount.User;
            this.serviceProcessInstaller1.Username = @".\MyUserName"; //username;
            this.serviceProcessInstaller1.Password = "123456"; // password;

            // Add installers to collection. Order is not important.
        }

        private void serviceInstaller1_AfterInstall(object sender, InstallEventArgs e)
        {

        }

        private void serviceProcessInstaller1_AfterInstall(object sender, InstallEventArgs e)
        {

        }
    }
}

老实说,如果我在代码中设置用户名和密码,我甚至不知道为什么会提示我输入用户名和密码…

您的域\用户名格式对于域是正确的,但是如果您使用的是本地用户名,请使用计算机名作为域名。如果主机名为FOO,用户名为BAR,则使用FOO\BAR

你确定你的用户帐户可以升级,对吗?可以通过网络和本地安全策略禁止这种行为


如果无法使用,请使用管理员帐户进行尝试。

请交叉检查您是否已完成以下步骤(尤其是步骤5):

  • 创建windows服务项目后,转到服务类的设计视图(只需双击service1.cs类)

  • 在“设计”视图中,单击鼠标右键,然后选择“添加安装程序”。这将创建一个名为ProjectInstaller.cs的安装程序类。如果没有ProjectInstaller.cs,或者配置ProjectInstaller.cs时出现任何错误,都可能导致服务控制台中不显示服务

  • 转到ProjectInstaller.cs的设计视图,您将在那里找到两个安装程序->

    a、 ServiceInstaller1

    b、 ServiceProcessInstaller1

  • 右键单击ServiceInstaller1并转到属性选项卡

    Change the account to **LocalService**
    
    a、 用您想要的名称编辑ServiceName 在服务控制台中查看您的服务

    b、 将开始类型更改为自动

  • 右键单击ServiceProcessInstaller1并转到属性选项卡

    a。将帐户更改为LocalService


  • 保存并试用。

    我找到了解决这种情况的方法——不管我用什么方法 虚拟机软件克隆了2008 r2

    使用以下步骤更改相关服务器2008 R2上的SID:


    这帮助我消除了错误

    右键单击ServiceProcessInstaller1并转到属性选项卡

    Change the account to **LocalService**
    

    这对我很有效

    只需在InitializeComponent方法安装程序中添加下面的配置代码

    this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;
    

    这对我有用,谢谢。如果我想配置一个更具体的用户,我可以在安装服务后再进行配置。5年后,仍然是有效的answer@IndieTechSolutions11年了,但在这里仍然是一个有效的答案!