Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MassTransit故障消息发布两次_C#_.net_Rabbitmq_Masstransit - Fatal编程技术网

C# MassTransit故障消息发布两次

C# MassTransit故障消息发布两次,c#,.net,rabbitmq,masstransit,C#,.net,Rabbitmq,Masstransit,我有一个正在抛出异常的消费者和一个具有以下订阅的总线: ServiceBusFactory.New(sbc=>{ ... removed for brevity... sbc.Subscribe(s=>{ ... removed for brevity... var logger = LogManager.GetLogger("Faults"); s.Handler<IFault>(fault => l

我有一个正在抛出异常的消费者和一个具有以下订阅的总线:

ServiceBusFactory.New(sbc=>{
    ... removed for brevity...
    sbc.Subscribe(s=>{
        ... removed for brevity...
        var logger = LogManager.GetLogger("Faults");
        s.Handler<IFault>(fault => logger.Error(JsonConvert.SerializeObject(fault)));
    }
 }
ServiceBusFactory.New(sbc=>{
…为简洁起见删除。。。
sbc.订阅(s=>{
…为简洁起见删除。。。
var logger=LogManager.GetLogger(“故障”);
s、 处理程序(fault=>logger.Error(JsonConvert.SerializeObject(fault));
}
}
当一个异常被抛出5次并继续发生错误时,我可以看到我的处理程序在两个不同的线程中被调用了两次

我不知道为什么,我希望它只发生一次


也许我的做法是错误的。我希望能够记录发生的故障,并能够重新处理它们。MassTransit或RabbitMQ是否已经内置了一些东西来处理这个问题?最初我使用的是MSMQ,它会自动将故障消息抛入相关的错误队列,但我看不到这些队列具有RabbitMQ。

我不知道报告的这一问题。我会将此作为一个简单的案例复制,并将其提交到邮件列表中,或将问题与可复制的案例一起提交。

我不知道报告的这一问题。我会将此作为一个简单的案例复制,并将其提交到邮件列表或邮件列表中b提交一个与可复制案例有关的问题。

我不知道报告中存在与此相关的问题。我会将此作为一个简单案例复制,并将其提交到邮件列表或提交一个与可复制案例相关的问题。

我不知道报告中存在与此相关的问题。我会将此作为一个简单案例复制,然后将其发送至邮件列表或提交一个问题和可复制的案例。

我已确认,如位于以下地址的要点所示:

https://gist.github.com/phatboyg/8428147

故障事件仅在消费者连续五次故障后发布一次。这是NuGet使用RabbitMQ或MSMQ发布的MT 2.9.5。我已确认,如位于以下位置的要点所示:

https://gist.github.com/phatboyg/8428147

故障事件仅在消费者连续五次故障后发布一次。这是NuGet使用RabbitMQ或MSMQ发布的MT 2.9.5。我已确认,如位于以下位置的要点所示:

https://gist.github.com/phatboyg/8428147

故障事件仅在消费者连续五次故障后发布一次。这是NuGet使用RabbitMQ或MSMQ发布的MT 2.9.5。我已确认,如位于以下位置的要点所示:

https://gist.github.com/phatboyg/8428147


在使用者中连续五次失败后,故障事件仅发布一次。这是NuGet的MT 2.9.5使用RabbitMQ或MSMQ实现的。

我相信我发现了问题……先前记录故障的尝试意味着为每个特定故障类型注册处理程序,而不是IFault对象。其中一些交换仍在RabbitMQ中注册。删除这些解决了问题。

我相信我发现了问题…以前尝试记录故障意味着为每个特定故障类型注册一个处理程序,而不是IFault对象。其中一些交换仍在RabbitMQ中注册。删除这些解决了问题。

我相信我发现问题…先前尝试记录故障意味着为每个特定故障类型注册一个处理程序,而不是IFault对象。其中一些交换仍然在RabbitMQ中注册。删除这些交换解决了问题。

我相信我发现了问题…先前尝试记录故障意味着为每个规范注册一个处理程序IFI错误类型,而不是IFault对象。其中一些交换仍然在RabbitMQ中注册。删除这些交换解决了问题。

这是2.9.5版本还是早期版本?Gist:Chris:2.9.0,我几周前用代码构建的。这是2.9.5版本还是早期版本?Gist:Chris:2.9.0,我几周前用代码构建的。这是2.9.5版本还是更早的版本?Gist:Chris:2.9.0,我几周前用代码构建的。这是2.9.5版本还是更早的版本?Gist:Chris:2.9.0,我几周前用代码构建的。我接受了你的Gist,并将其转化为单元测试,谢谢!它通过得很好,所以我知道这是配置的东西,但这是m的生命e我似乎找不到问题。我会继续挖掘,一旦我找到答案,我会发布一些东西,以便其他人可以从我的错误中吸取教训。所以,有趣的是,我发现,在上下文中有两个不同的消息Id。上下文之间的所有其他内容似乎都是一样的。对这意味着什么有什么想法吗?Id或MessageId?Id只是在内部用于跟踪队列中的每次读取,MessageId是传输上的序列化ID。上下文对象上的MessageId正在发生变化,所以听起来像是两条不同的消息,不是吗?我把你的要点变成了一个单元测试,谢谢!它通过得很好,所以我知道这是config的一部分,但对于生命来说对我来说,我似乎找不到问题。我会继续挖掘,一旦我找到答案,我会发布一些东西,以便其他人可以从我的错误中吸取教训。所以,有趣的是,我发现,在上下文中有两个不同的消息Id。上下文之间的所有其他内容似乎都是一样的。对这意味着什么有什么想法吗?Id或MessageId?Id只是在内部用于跟踪队列中的每次读取,MessageId是传输上的序列化Id。上下文对象上的MessageId是正在变化的,所以它听起来像两条不同的消息,不是吗?我把你的要点变成了一个单元测试,谢谢!它通过得很好,所以我知道它与配置有关,但与lif无关对于我来说,我似乎找不到问题。我会继续挖掘,一旦我找到答案,我会发布一些东西,以便其他人可以从我的错误中学习。所以,有趣的是,我发现,在上下文中有两个不同的消息Id。上下文之间的所有其他内容似乎都是一样的。对这意味着什么有什么想法吗?Id或消息Id?Id仅在内部用于trac