2009-09-28 17 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

相关问题