Я пытаюсь обработать конкретный Fault
внутри экземпляра Saga, как описано в https://masstransit-project.com/MassTransit/usage/exceptions.html#faults. В моемStateMachine
классе у меня есть:
Event(
() => OnError,
x => x
.CorrelateById(context => context.Message.Message.CorrelationId))
DuringAny(WhenError());
...
public Event<CustomCommand> CustomCommandReceived { get; protected set; }
public Event<Fault<CustomCommand>> OnError { get; protected set; }
...
private EventActivityBinder<RequestSaga, Fault<CustomCommand>> WhenError()
{
return When(OnError)
.Then(context =>
{
context.Instance.Status = RequestProcessingStatus.Error;
});
}
Но когда произошло Fault<CustomCommand>
, код внутри обработчика не был выполнен, и сообщение Fault<CustomCommand>
отправляется в очередь ..._skipped
.
Что я делаю неправильно??