2012-05-08 11 views
0

バスのインスタンスを設定しようとすると、次のエラーが発生します。NServiceBus V3 WPFアプリケーション内でエンドポイントを設定する方法

ないエンドポイント名を生成することができ、Configure.DefineEndpointName(...)

を使用して、独自の 規則を指定してくださいうーん私は、エンドポイントのメッセージのマッピングについてのバスを伝える必要があります。私は通常、これを指定するためにapp.configを使用し、それは私のWPFアプリケーションのためにうまく動作します(私はWPFの専門家ではありません)。

app.configをが私のWPFアプリか何かの中に読まれていない表示されますが間違っている... 私のスタートアップコードは(リサイズまたはコンソールアプリで正常に動作する)、このようになります

 Bus = Configure.With() 
      .AutofacBuilder(container) 
      .XmlSerializer() 
      .MsmqTransport().IsTransactional(true).PurgeOnStartup(false) 
      .UnicastBus().ImpersonateSender(false).LoadMessageHandlers() 
      .CreateBus() 
      .Start(); 

どれでも提案...

最終的に私はすべてのデスクトップアプリケーションが起動時にこれを読むことができるように集中的に保存されたエンドポイントマッピングへのメッセージを希望します。すべてのクライアントがアクセスできる中央DB。 このようにバスを設定する方法の例は、分かります。エラーパー

答えて

1

、ちょうどあなたの初期化にそれを追加します。

Bus = Configure.With() 
     .AutofacBuilder(container) 
     .DefineEndpointName("ENDPOINTNAME") 
     .XmlSerializer() 
     .MsmqTransport().IsTransactional(true).PurgeOnStartup(false) 
     .UnicastBus().ImpersonateSender(false).LoadMessageHandlers() 
     .CreateBus() 
     .Start(); 

また、これはあなたの入力キュー名になります。

+0

感謝を動作させることができなかった、私は私が私のポストにいることをしようとしたことを言及している必要があります。これは私を困惑させてしまった。私は、3つの簡単なテストアプリケーション、コンソール、winformsとWPFを作成しました。 WPFアプリケーションはバスを起動しません。構成は他の2つのアプリケーションと同じで、バスは開始し、期待どおりにエンドポイントにコマンドを送信します。 WPFアプリケーションでユニークでNServiceBusのインスタンスを設定するのは何ですか?アダムにもう一度感謝します! – CRG

+0

私の間違いは、私は愚かに同じエンドポイント名を設定しました。古典的なカット&ペーストエラー。コンソールとwinformsアプリケーションはデフォルトのエンドポイント命名規則 - 名前空間を使用します。 – CRG

3

上記の受け入れられた回答に追加するだけで、メソッドを呼び出す順序が重要になります。私の場合、私はそれがConfigure.With後に直接でない限りDefineEndpointNameは、()()

 Bus = Configure.With() 
      .DefineEndpointName("WPFSubscriber") 
      .DefiningEventsAs(t => t.Namespace != null && t.Namespace.StartsWith("MyMessages")) 
      .Log4Net() 
      .DefaultBuilder() 
      .XmlSerializer() 
      .MsmqTransport() 
      .IsTransactional(true) 
      .PurgeOnStartup(false) 
      .UnicastBus(). 
      ImpersonateSender(false) 
      .LoadMessageHandlers() 
      .CreateBus() 
      .Start(); 
+0

私は全く同意します、順序は重要です。 – CRG

関連する問題