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 はこのメソッドを呼び出します。

答えは、EndpointConfig クラスによって実装されるインターフェイスのリストに ISpecify.ToRunAsLocalSystem を追加することです。

答えが見つかりませんでした:

(1.)これを機能させるために渡すことができる資格情報は何ですか?

しかし、ローカル システムとしてサービスを実行するのに十分満足しているので、今は本当に必要ありません。

于 2009-09-28T17:20:55.530 に答える
0

これが適切かどうかはわかりませんが、MattBurtonは最近次のコミットを追加しました。

私はまだ試していませんが、私の質問(1)は今では無関係かもしれません。

于 2009-10-08T21:08:11.770 に答える