C# N服务总线端点命名
我正在努力掌握NSerivceBus,尽管它进展顺利,但我很难理解如何配置EndPointName 例如,在完成了几个示例之后,我成功地提出了以下内容,但是我试图更改端点名称的任何尝试都失败了 因此,myServer队列是当前的名称,我认为是从这里的名称空间中获取的:C# N服务总线端点命名,c#,asp.net,nservicebus,C#,Asp.net,Nservicebus,我正在努力掌握NSerivceBus,尽管它进展顺利,但我很难理解如何配置EndPointName 例如,在完成了几个示例之后,我成功地提出了以下内容,但是我试图更改端点名称的任何尝试都失败了 因此,myServer队列是当前的名称,我认为是从这里的名称空间中获取的: namespace MyServer { class EndPointConfig : IConfigureThisEndpoint, AsA_Server { } } 但是当我放置[Endpoint
namespace MyServer
{
class EndPointConfig : IConfigureThisEndpoint, AsA_Server
{
}
}
但是当我放置[EndpointName(“AnotherQueue”)]时,没有任何变化(除了它没有填充myServer队列)
我还尝试更改Global.ASAX:
public static IBus Bus { get; set; }
void Application_Start(object sender, EventArgs e)
{
Bus = NServiceBus.Configure.With()
.Log4Net()
.DefaultBuilder()
.DefineEndpointName("AnotherQueue")
.XmlSerializer()
.MsmqTransport()
.IsTransactional(false)
.PurgeOnStartup(false)
.UnicastBus()
.ImpersonateSender(false)
.CreateBus()
.Start();
}
但同样,它没有起作用
我通过查看mmc并检查那里的消息队列来测试它
最后,我尝试更改web.config
<configSections>
<section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig, NserviceBus.Core"/>
<section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core"/>
</configSections>
<MsmqTransportConfig ErrorQueue="error" NumberOfWorkerThreads="1" MaxRetries="5"/>
<UnicastBusConfig>
<MessageEndpointMappings>
<add Messages="MyMessage" Endpoint="AnotherQueue"></add>
</MessageEndpointMappings>
</UnicastBusConfig>
还是什么都没有
有人能帮忙吗?我仍在想这个问题(这对我来说是一项新技术),所以如果我问得不好,我表示歉意
提前谢谢
Lex两件事:
我不是100%确定,但如果您在web应用程序中托管,我认为您不想使用IConfigureThisEndpoint和AsA_服务器。我相信您在application_Start中拥有的配置代码就是您所需要的。另一种配置方法是在NSB自己的进程中托管时使用(作为windows服务或控制台)
尝试将DefineEndPointName(“AnotherQueue”)
作为NServiceBus.Configure.With()
之后的第一个命令。这是我设置它的方式,它可以工作,我相信With()之后的命令顺序很重要,并且可以无声地失败(我认为这将在未来的版本中解决)
根据您试图完成的任务,您可能根本不需要unicastbus配置。该配置用于在客户端定义端点——换句话说,使用它定义您的应用程序想要与之通信的端点
最后,在运行web应用程序时使用它的调试窗口来查找可能出现问题的线索。NSB在调试模式下会生成许多非常有用的日志信息,所有这些信息都应该发送到调试窗口。可能是因为你的应用程序没有创建队列的权限,或者其他类似的内容。一旦我发现t bit out,排除许多“学习曲线问题”变得容易多了。DefineEndPointName()必须在DefaultBuilder()之前。请参阅