1

既存の Windows サービスでディストリビューターを自己ホストしようとしています。私は MSMQ トランスポートを使用しています。バスの作成方法は次のとおりです。

NServiceBus.Configure.With()
.DefaultBuilder()
.EnlistWithDistributor()
.JsonSerializer()
.UseTransport<Msmq>()
.UnicastBus()
.CreateBus()
.Start();

デフォルトの Queue 名 (Assembly 名前空間から自動的に派生) をオーバーライドする必要があります。次の方法で EndPointConfig を定義しようとしましたが、残念ながら、Q 名は変更されませんでした。

[NServiceBus.EndpointName("custon.queue.name")]
public class EndpointConfig : NServiceBus.IConfigureThisEndpoint, NServiceBus.AsA_Publisher 
{
    public EndpointConfig()
    {
    }
}

構成セクション


  <configSections>
    <section name="MessageForwardingInCaseOfFaultConfig" type="NServiceBus.Config.MessageForwardingInCaseOfFaultConfig, NServiceBus.Core"/>
    <section name="AuditConfig" type="NServiceBus.Config.AuditConfig, NServiceBus.Core"/>
    <section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core"/>
    <section name="TransportConfig" type="NServiceBus.Config.TransportConfig, NServiceBus.Core"/>
  </configSections>
  <AuditConfig QueueName="audit"/>
  <MessageForwardingInCaseOfFaultConfig ErrorQueue="error"/>
  <TransportConfig MaximumConcurrencyLevel="10" MaxRetries="3" MaximumMessageThroughputPerSecond="10"/>
  <UnicastBusConfig>
    <MessageEndpointMappings>
      <add Messages="Protocols" Endpoint="custom.queue.name@localhost"/>
    </MessageEndpointMappings>
  </UnicastBusConfig>



自己ホスティング時に使用されるキューの名前をオーバーライドするにはどうすればよいですか?
どんな助けでも大歓迎です。

4

1 に答える 1

4

セルフホスティングの場合、EndpointConfig クラスはありません。構成は、流暢な構成ブロックから完全に派生します。EndpointConfig クラスは無視されています。

流暢な構成を介して、エンドポイント名を変更する (具体的に言うと、「入力キューを変更する」というのは誤称です - エンドポイント名から追い出されます) は、次のように行われます。

Configure.With()
    .DefineEndpointName("MyEndpointName")
    // Rest of config

または、データベースまたは構成ファイルからプルしたい場合、または何か凝ったことをしたい場合...

Configure.With()
    .DefineEndpointName(() =>
        {
            // determine and return endpoint name
        })
    // Rest of config

エンドポイント名は構成内の他のすべてのものにとって重要であるため、流暢な構成チェーンの最初の項目にする必要があります。

また、NServiceBus ドキュメントの「入力キューを指定する方法」も参照してください。

于 2013-10-16T14:18:11.207 に答える