我在将大型项目从 NServiceBus 3.0.3 迁移到 3.3.3 时遇到问题。问题是:我们有很多测试,如果目标队列不存在,则期望抛出异常。这对于 3.0.3 来说是正确的,但是,在 3.3.3 中,消息只需进入“事务性死信消息”队列,而不会引发异常。我试图在 NServiceBus github 中搜索并调试它的代码,但仍然无法获得导致此行为的更改。
有没有办法配置新的 NServiceBus 客户端,以便在目标队列不存在时仍然抛出 QueueNotFoundException ?
UPD:在调试 NServiceBus 代码时,我发现它以某种方式捕获了 System.Messaging.dll 中引发的异常。我真的不知道这是在哪里发生的,因为 dll 似乎已经过优化,而且我无法在很多地方设置断点,但如果我启用“Break on CLR Exceptions”,我可以看到它确实发生了。