1

Sql Server を使用するように NServiceBus を構成しました。

    Configure.With()
        .AutofacBuilder(container)
        .UseTransport<SqlServer>("aureus")
        .InMemorySubscriptionStorage()
        .UnicastBus()
        .DisableTimeoutManager()
        .CreateBus()
        .Start();

コントローラーでメッセージを送信するとき。

this._bus.Send(new BillClient { Value = "testing." });

エラーが発生します。メッセージをアドレスに送信できませんでした: [queue] オブジェクト名 'queue' が無効です。

私の構成は次のとおりです。

  <UnicastBusConfig>
    <MessageEndpointMappings>
      <add Assembly="Aureus.Messages" Namespace="Aureus.Messages" Endpoint="queue"/>
    </MessageEndpointMappings>
  </UnicastBusConfig>

私は何を逃したのですか?スクリプトを実行する必要があるかどうか、またはキューを初期化する必要があるかどうかわかりません。

4

2 に答える 2

1

私は専門家ではありませんが、以下に示すように、 ConnectionString 定義を .UseTransport() の引数として使用する必要がありました。あなたの投稿では、「aureus」が NServiceBus ソフトウェアにとって何を意味するのかが明確ではありません。

.UseTransport<SqlServer>(ConnectionString())


string ConnectionString()
{
    return "NServiceBus/Transport\" connectionString=\"Data Source=.\\SQLEXPRESS;Initial    Catalog=nservicebus;Integrated Security=True";
}

構成ファイルの ConnectionString 名を引数として使用することもできませんでした。これが私の設定ファイルfyiのセクションです:

<connectionStrings>
  <!-- Message Bus ********************************************** -->
<add name="NServiceBus/Transport" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=nservicebus;Integrated Security=True" />
  <!-- Message Bus ********************************************** -->
</connectionStrings>

また、構成ファイルのエンドポイントには、NServiceBus メッセージ ハンドラー クラスの名前空間を使用する必要がありました。私の設定ファイルのエンドポイントセクションは次のとおりです。

<UnicastBusConfig ForwardReceivedMessagesTo="audit">
    <MessageEndpointMappings>
    <!--Note - Endpoint must specify the Namespace of the server-->
    <add Assembly="My.Messages.Assemblyname" Namespace="My.Messages.AssemblyNamespace" Endpoint="MyMessageHandlerAssy.Namespace" />
    </MessageEndpointMappings>
</UnicastBusConfig>

少しでもお役に立てば幸いです。

于 2013-10-23T13:49:59.620 に答える
1

それ以外の

.Start()

あなたが必要

.Start(() => Configure.Instance.ForInstallationOn<Windows>().Install());

キューの初期化を開始します。

于 2013-10-22T11:41:54.747 に答える