2011-06-16 97 views
16

我有一個Windows服務和安裝項目。當我安裝項目右鍵單擊,然後單擊安裝它提示我的安裝Windows服務 - 帳戶名和安全ID之間沒有映射

  • 用戶名
  • 密碼
  • 確認密碼

我曾嘗試以下組合

。\ 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) 
     { 

     } 
    } 
} 

說實話,我也不知道爲什麼我提示如果我在代碼中設置了用戶名和密碼...

回答

8

您的DOMAIN \ USERNAME格式對於域是正確的,但是如果您使用的是loc用戶名,請使用計算機名稱作爲域名。如果你的主機名是FOO,而你的用戶名是BAR,你可以使用FOO \ BAR。

您確定您的用戶帳戶可以升級,對吧?有可能通過網絡和本地安全策略禁止這種情況。

如果它不起作用,請使用管理員帳戶嘗試。

19

請交叉檢查您是否已經完成以下步驟(尤其是第5步):

1.After創建Windows服務項目轉至服務類的設計視圖(只需雙擊service1.cs類)。

2.在設計視圖中,右鍵單擊並選擇添加安裝程序。這將創建一個名爲ProjectInstaller.cs的安裝程序類。無法使用ProjectInstaller.cs或配置ProjectInstaller.cs時出現任何錯誤都可能導致服務控制檯中的服務未顯示。

3。至ProjectInstaller.cs的設計視圖,你會發現兩個安裝程序那裏 - >

a.**ServiceInstaller1** 

    b.**ServiceProcessInstaller1** 

4.Right點擊ServiceInstaller1並轉到屬性選項卡

a.Edit the ServiceName with the name you want to 

看到你服務控制檯中的服務。

b.Change the **StartType** to **Automatic**. 

5.Right單擊ServiceProcessInstaller1,然後轉到屬性選項卡

a.Change the account to **LocalService** 

保存和嘗試。

希望這將幫助你........

+2

這爲我工作,謝謝。如果我想配置一個更具體的用戶,我可以在安裝服務後始終這樣做。 – 2GDave 2012-05-13 18:40:05

+1

5年後,仍然是一個有效的答案 – 2016-03-10 17:03:26

0

右擊ServiceProcessInstaller1,然後轉到屬性選項卡

Change the account to **LocalService** 

這爲我工作