3

想象一下,我在以下目录中创建了一个 .bat 文件:

\trunk\Samples\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: 帐户名无效或不存在,或指定帐户名的密码无效

  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
4

2 回答 2

4

(2.) 我可以将凭据配置为 NServiceBus.Host.exe 的命令行参数或作为“本地系统帐户”运行吗?

在深入研究 TopShelf 和 NSB 源代码后,我发现这非常简单:

对于任何感兴趣的人 - 这是 TopShelf 使用IRunnerConfigurator .RunAsLocalSystem 实现的东西。如果添加标记接口 ISpecify.ToRunAsLocalSystem,NServiceBus 会调用此方法

所以答案是将 ISpecify.ToRunAsLocalSystem 添加到 EndpointConfig 类实现的接口列表中。

我没有找到答案:

(1.) 我可以通过哪些凭据来使其正常工作?

但是现在我真的不需要一个,因为我很高兴能够将服务作为本地系统运行。

于 2009-09-28T17:20:55.530 回答
0

我不确定这是否相关,但马特伯顿最近添加了以下提交:

我还没有尝试过,但我的问题 (1) 现在可能无关紧要。

于 2009-10-08T21:08:11.770 回答