2009-09-28 36 views
3

我想象中創建以下目錄.bat文件:在NServiceBus中將通用主機作爲服務安裝時,如何提供有效憑證?

\幹線\樣本\ PubSub的\

@ECHO OFF 
ECHO installing Subscriber 1 
Subscriber1\bin\Debug\NServiceBus.Host.exe /install 
pause 
ECHO installing Subscriber 2 
Subscriber2\bin\Debug\NServiceBus.Host.exe /install 
pause 
ECHO starting Subscriber services 
net start Subscriber1.EndPointConfig_v1.0.0.0 
net start Subscriber2.EndPointConfig_v1.0.0.0 
pause 

提示要求輸入用戶名和密碼我,而是用自己的證書我得到一個異常如下所示:

安裝階段發生異常。 System.ComponentModel.Win32Exception:帳戶名稱無效或不前 IST,或密碼無效帳戶名指定

  1. 我可以通過什麼憑證來得到這個工作?

  2. 我可以將憑證配置爲NServiceBus.Host.exe的命令行參數,還是以「本地系統帳戶」身份運行?

注:

我的研究迄今表明,(2)可能是某種TopShelf支持通過它的IInstallationConfiguration

與已安裝的MSMQ我這樣做是一個Vista的機器上。

的PubSub的樣品運行正常,如果我只是運行訂戶實例作爲控制檯應用程序(即,像這樣):

@ECHO OFF 
ECHO starting Subscriber 1 
Subscriber1\bin\Debug\NServiceBus.Host.exe NServiceBus.Integration 
pause 
+0

對於任何想要重現此問題的人,我應該補充一點,我一直在調整PubSub示例解決方案,方法是使用/ install參數運行NServiceBus.Host.exe,以使其作爲Windows Service安裝,而不是作爲控制檯應用。 如NSB wiki中所述,NServiceBus.Host.exe使用可用於配置自身的適當配置掃描其當前目錄中的任何dll。該示例通過EndpointConfig類執行此操作。 – rohancragg 2009-09-28 17:34:42

回答

4

(2.)我可以配置憑證作爲命令行參數來NServiceBus .Host.exe或作爲「本地系統帳戶」運行?

在TopShelf和NSB源代碼周圍挖後,我發現這是非常簡單的:

的人誰的興趣 - 這是後話了TopShelf實現與IRunnerConfigurator .RunAsLocalSystem。如果添加標記接口,NServiceBus調用此方法ISpecify.ToRunAsLocalSystem

所以,答案是將ISpecify.ToRunAsLocalSystem添加到由EndpointConfig類實現的接口列表中。

我沒有找到一個答案:

(1)我可以通過什麼憑證來得到這個工作?

但現在我並不真正需要一個,因爲我很高興能夠以Local System身份運行服務。

+0

馬特伯頓自添加了以下變化到主幹: - 製成RunAsLocalSystem默認安裝爲主機,除非/用戶名和/密碼命令行參數重寫 - 除去ISpecify.ToRunAsLocalSystem HTTP:// TeamCity的。 codebetter.com/viewLog.html?buildId=6473&buildTypeId=bt60&tab=buildChangesDiv – rohancragg 2009-10-14 09:22:49

+0

我有一個類似的問題:我想作爲LocalSystem運行,但如果我省略了用戶名/密碼,安裝程序會彈出一個用戶名/密碼對話框。不知道這是不是新東西。任何想法我能做些什麼呢? – 2010-01-05 08:45:26

相關問題