2009-08-05 72 views

回答

3
+0

您可以使用它在運行時(而不是編譯時)設置用戶名和密碼嗎?你不需要能夠到達已經編譯到服務可執行文件中的安裝程序嗎?我可能不得不去WMI路線。 – 2012-02-17 21:12:12

+0

您的服務可以擁有自己的安裝程序類,它從「System.Configuration.Install.Installer」繼承。我們使用這個繼承的類並將它與表單關聯起來。表單在安裝期間出現並提示各種事情,包括用戶/密碼。然後在Installer類中重寫OnBeforeInstall並設置Me。ServiceProcessInstaller1.Username。 – MattH 2012-02-21 18:33:48

+0

並修改WinService中尚存在的windows服務帳號? – Kiquenet 2014-07-04 09:30:32

-1

通常情況下,您將能夠將這些憑據傳遞給安裝程序類。您可以對其進行硬編碼或將其作爲命令行參數傳遞。第二種方法更合適,但它需要您不必要地解析命令行參數。

我建議你第三種方法......

<ShamelessPlug>

嗨!我是一個開源的 源窗口服務託管 架構稱爲Daemoniq。並且通過命令行傳遞 憑證是其中的一個 其功能。您可以從 http://daemoniq.org

當前功能下載包括:

  • 容器不可知的服務通過CommonServiceLocator
  • 設置常用的服務像服務名,顯示名,說明 和serviceStartMode特性通過的app.config
  • 位置
  • 在同一進程上運行多個Windows服務
  • 通過app.config設置恢復選項
  • 組服務通過的app.config
  • 一套服務流程憑證通過命令行
  • 安裝,卸載,調試服務,通過命令行依賴於

</ShamelessPlug >

乾杯!

+0

無恥的東西,不再有任何東西。 – Grubsnik 2016-01-21 13:45:59

4

下面添加到項目安裝程序將在安裝期間分配服務登錄信息。

public ProjectInstaller() 
    { 
     InitializeComponent(); 

     serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.<account type>; 
     serviceProcessInstaller1.Username = <domain\userId>; 
     serviceProcessInstaller1.Password = <password>; 
    } 
+0

如果您未在代碼中指定帳戶並且將ServiceProcessInstaller Account for Account屬性設置爲User,則在安裝期間將打開表單對話框,以便執行安裝的個人可以指定域用戶帳戶和密碼。 – JohnL 2015-05-27 20:12:11

相關問題