想象一下,我在以下目录中创建了一个.bat文件:
\树干\样品\ 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:帐户名称无效或不是ex ist,或者密码对于指定的帐户名称无效
我可以通过哪些凭据来实现此目的?
我可以将凭据配置为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 :(得分:4)
(2。)我可以将凭据配置为NServiceBus.Host.exe的命令行参数,还是作为“本地系统帐户”运行?
在深入了解TopShelf和NSB源代码后,我发现这非常简单:
对于任何感兴趣的人 - 这是TopShelf用IRunnerConfigurator实现的东西.RunAsLocalSystem。如果添加标记接口ISpecify.ToRunAsLocalSystem
,NServiceBus会调用此方法所以答案是将ISpecify.ToRunAsLocalSystem添加到EndpointConfig类实现的接口列表中。
我找不到答案:
(1。)我可以传递哪些凭据才能使其正常工作?
但是现在我真的不需要一个,因为我很高兴能够以本地系统的形式运行服务。
答案 1 :(得分:0)
我不确定这是否相关,但Matt Burton最近添加了以下提交:
我还没试过,但我的问题(1)现在可能无关紧要了。