Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.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
NServiceBus 3.3.3没有';当队列不';不存在_Nservicebus - Fatal编程技术网

NServiceBus 3.3.3没有';当队列不';不存在

NServiceBus 3.3.3没有';当队列不';不存在,nservicebus,Nservicebus,我在将大型项目从NServiceBus 3.0.3迁移到3.3.3时遇到问题。 问题是:我们有很多测试,它们期望在目标队列不存在时抛出异常。这对于3.0.3是正确的,但是,在3.3.3中,消息只需转到“事务死信消息”队列,不会引发异常。我试图在NServiceBus github中搜索并调试其代码,但仍然无法获得导致这种行为的更改 有没有办法配置新的NServiceBus客户端,以便在目标队列不存在时仍抛出QueueNotFoundException UPD:在调试NServiceBus代码时,

我在将大型项目从NServiceBus 3.0.3迁移到3.3.3时遇到问题。 问题是:我们有很多测试,它们期望在目标队列不存在时抛出异常。这对于3.0.3是正确的,但是,在3.3.3中,消息只需转到“事务死信消息”队列,不会引发异常。我试图在NServiceBus github中搜索并调试其代码,但仍然无法获得导致这种行为的更改

有没有办法配置新的NServiceBus客户端,以便在目标队列不存在时仍抛出QueueNotFoundException


UPD:在调试NServiceBus代码时,我发现它以某种方式捕获了System.Messaging.dll中抛出的异常。我真的不知道这种情况发生在哪里,因为dll似乎已优化,我无法在很多地方设置断点,但如果启用“CLR异常时中断”,我可以看到它确实发生了。

我没有查看代码,但如果配置MsmqTransport.UseDeadLetterQueue=false会怎么样?1。无法真正理解在何处配置此。似乎只有通过配置文件才有可能做到这一点,而且代码中没有公共属性可以做到这一点。2.在3.0.3中,UseDeadLetterQueue肯定是正确的,我在调试时检查了它。是的,它在配置中。我希望将此设置为false将引发异常。由于这只是设置Message.UseDeadLetterQueue,您可以在NSB之外设置一个快速测试,以查看发生了什么。好的,我找到了一种关闭死信消息的简单方法:config.Configurer.ConfigureProperty(t=>t.UseDeadLetterQueue,false);但是:这没用。死信队列中不显示任何内容,发送到不存在的队列时也不会引发异常。消息丢失了。如果不重写测试,我的问题似乎是无法解决的。关于NSB之外的测试:这是非常无用的,因为我已经发现MessageQueue类本身在我所说的情况下会抛出异常。是国家安全局抓了他们而没有再抓。我认为这篇文章讲述了他们的变化