首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自托管时设置NServiceBus端点名称/输入队列

自托管时设置NServiceBus端点名称/输入队列
EN

Stack Overflow用户
提问于 2013-10-14 11:48:39
回答 1查看 4.1K关注 0票数 1

我正在尝试在现有的windows服务中使用自宿主作为分发服务器.我使用MSMQ传输,以下是如何创建总线:

代码语言:javascript
复制
NServiceBus.Configure.With()
.DefaultBuilder()
.EnlistWithDistributor()
.JsonSerializer()
.UseTransport<Msmq>()
.UnicastBus()
.CreateBus()
.Start();

我需要覆盖默认队列名(自动从程序集命名空间派生),我试图以以下方式定义一个EndPointConfig,不幸的是,它没有更改Q名。

代码语言:javascript
复制
[NServiceBus.EndpointName("custon.queue.name")]
public class EndpointConfig : NServiceBus.IConfigureThisEndpoint, NServiceBus.AsA_Publisher 
{
    public EndpointConfig()
    {
    }
}

Config截面

代码语言:javascript
复制
  <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>

如何覆盖自宿主时使用的队列的名称?

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-16 14:18:11

当自我托管时,没有EndpointConfig类-配置完全是从fluent配置块派生出来的。您的EndpointConfig类被忽略了。

通过fluent配置,更改端点名称(具体地说“更改输入队列”是一个错误的名称-将其从端点名称中删除)的操作如下所示:

代码语言:javascript
复制
Configure.With()
    .DefineEndpointName("MyEndpointName")
    // Rest of config

或者如果你想把它从数据库或配置文件中提取出来或者做一些花哨的事情.

代码语言:javascript
复制
Configure.With()
    .DefineEndpointName(() =>
        {
            // determine and return endpoint name
        })
    // Rest of config

端点名称对配置中的其他所有内容都至关重要,因此它应该是fluent配置链中的第一项。

还请参阅如何指定输入队列文档中的NServiceBus文档。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19359564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档