我有一个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)
{
}
}
}
老实说,如果我在代码中设置了用户名和密码,我甚至不确定为什么会提示我输入...
答案 0 :(得分:27)
请交叉检查您是否已完成以下步骤(特别是第5步):
创建Windows服务项目后,转到服务类的设计视图(只需双击service1.cs类)。
在设计视图中右键单击并选择Add Installer。这将创建一个名为ProjectInstaller.cs的Installer类。使用ProjectInstaller.cs或配置ProjectInstaller.cs时的任何错误都可能导致服务控制台中没有显示该服务。
转到ProjectInstaller.cs的设计视图,你会在那里找到两个安装程序 - >
一个。的 ServiceInstaller1 强>
b。 ServiceProcessInstaller1
右键单击ServiceInstaller1并转到属性选项卡
a。使用您想要的名称编辑ServiceName 在服务控制台中查看您的服务。
b。将 StartType 更改为自动。
右键单击ServiceProcessInstaller1并转到属性选项卡
一个。将帐户更改为 LocalService
保存并尝试。
答案 1 :(得分:9)
您的DOMAIN \ USERNAME格式对于域名是正确的,但如果您使用的是本地用户名,请使用域名的计算机名称。如果您的主机名是FOO且您的用户名是BAR,那么您将使用FOO \ BAR。
您确定允许您的用户帐户升级,对吗?可以通过网络和本地安全策略来禁止它。
如果管理员帐户不起作用,请尝试使用。
答案 2 :(得分:2)
我找到了解决这种情况的方法----但是我正在使用 VM WARE克隆了2008 r2。
使用以下步骤更改有问题的Server 2008 R2上的SID:
这有助于我删除错误。
答案 3 :(得分:1)
只需在下面的InitializeComponent方法安装程序中添加配置代码即可。
this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;
答案 4 :(得分:0)
右键单击ServiceProcessInstaller1并转到属性选项卡
Change the account to **LocalService**
这对我有用