Как отлаживать оба Handle
метода ниже?
Я установил точки останова для обоих методов Handle
в Visual Studio и отправил сообщение в очередь Subscriber1
, но оба метода не вызывались в VS.
public class SomeHandler : IHandleMessages<string>, IHandleMessages<IFailed<string>>
{
readonly IBus _bus;
public SomeHandle(IBus bus)
{
_bus = bus;
}
public async Task Handle(string message)
{
// do stuff that can fail here...
}
public async Task Handle(IFailed<string> failedMessage)
{
await _bus.Advanced.TransportMessage.Defer(TimeSpan.FromSeconds(30));
}
}
Ниже приведено сообщение, отправленное на Subscriber1
.
Я пытался отправить сообщение, исключая rbs2-msg-id
или rbs2-msg-type
, но ни один из них не вызывает приведенный выше метод Handle
.
{
"body": "Test",
//other fields
"properties": {
"rbs2-intent": "pub",
"rbs2-msg-id": "cd57d735-3989-45b5-8a3c-e457fa61dc94",
"rbs2-return-address": "publisher",
"rbs2-senttime": "2019-05-27T15:07:25.1770000+01:00",
"rbs2-sender-address": "publisher",
"rbs2-msg-type": "System.String, mscorlib",
"rbs2-corr-id": "cd57d735-3989-45b5-8a3c-e457fa61dc94",
"rbs2-corr-seq": "0",
"rbs2-content-type": "application/json;charset=utf-8"
},
//other fields
}
Обновление 1
Если в Handle(string message)
выдается исключение, метод будет повторен на основании количества попыток 1-го уровня. Это то, что нам нужно.
Однако Handle(IFailed<string> failedMessage)
не вызывается, как отлаживать Handle(IFailed<string> failedMessage)
как abvoe?
Одно примечание : когда в Handle(string message)
генерируется исключение, IErrorHandler НЕ вызывается и AddTransportMessageForwarder также не вызывается, верно ли это?