12

異なる名前空間から異なるエンドポイントにメッセージを送信することにより、NServiceBus 構成でメッセージ エンドポイント マッピングを構成しようとしています。

そのため、web.config で次のように構成しました。

<MessageEndpointMappings>
    <add Messages="Company.Messages.Accounts" Endpoint="ServiceInput" />
    <add Messages="Company.Messages.Payments" Endpoint="ServiceInput" />
    <add Messages="Company.Messages.Cancellations" Endpoint="ServiceInput" />
    <add Messages="Company.Messages.Notifications" Endpoint="ServiceInput" />
</MessageEndpointMappings>

ただし、アプリケーションを起動すると、次の例外が発生します。

Spring.Objects.PropertyAccessExceptionsException: PropertyAccessExceptionsException (1 エラー); ネストされた PropertyAccessExceptions は次のとおりです: [Spring.Core.TypeMismatchException: プロパティ 'MessageOwners' の [System.Collections.Hashtable] 型のプロパティ値を必要な型 [System.Collections.IDictionary] に変換できません。内部例外: System.ArgumentException: 読み込みの問題メッセージ アセンブリ: Company.Messages.Payments ---> System.IO.FileNotFoundException: ファイルまたはアセンブリ 'Company.Messages.Payments' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。ファイル名: 「Company.Messages.Payments」

興味深いのは、Company.Messages.Accounts が見つかったように見えますが、2 番目に構成された行で失敗したことです。それらがすべて同じエンドポイントに移動するのが気に入らないのではないかと思いましたが、この構成を変更して異なるエンドポイントに移動しても、受け取ったエラー メッセージは変わりませんでした。

私は何を間違っていますか?メッセージを名前空間でセグメント化することはできませんか (私が見たのは、型とアセンブリによるものだけです)?

ありがとう、スティーブ

4

3 に答える 3

13

NSBは、エンドポイントへのアセンブリまたは個々のタイプのマッピングのみをサポートします。名前空間はサポートされていません。メッセージアセンブリをエンドポイントごとに個別のアセンブリに分割することをお勧めします。

于 2010-04-02T08:20:56.963 に答える
5

このページによると、タイプを指定できます: http://docs.particular.net/nservicebus/messaging/message-owner

特定のタイプは、修飾名「namespace.type, assembly」を使用して構成できます。

于 2010-05-19T19:02:25.557 に答える