Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/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
C# MassTransit在Saga中的处理故障_C#_Asp.net Core_Masstransit_Saga - Fatal编程技术网

C# MassTransit在Saga中的处理故障

C# MassTransit在Saga中的处理故障,c#,asp.net-core,masstransit,saga,C#,Asp.net Core,Masstransit,Saga,我正在尝试处理Saga实例中的特定错误,如中所述。 在我的StateMachine课程中,我有: 事件( ()=>一个错误, x=>x .CorrelateById(上下文=>context.Message.Message.CorrelationId)) 在任何情况下(当错误(); ... 公共事件CustomCommandReceived{get;protected set;} 公共事件OnError{get;protected set;} ... private EventActivityB

我正在尝试处理Saga实例中的特定
错误
,如中所述。 在我的
StateMachine
课程中,我有:

事件(
()=>一个错误,
x=>x
.CorrelateById(上下文=>context.Message.Message.CorrelationId))
在任何情况下(当错误();
...
公共事件CustomCommandReceived{get;protected set;}
公共事件OnError{get;protected set;}
...
private EventActivityBinder WhenError()
{
返回时间(OnError)
。然后(上下文=>
{
context.Instance.Status=RequestProcessingStatus.Error;
});
}
但当发生
Fault
时,处理程序中的代码没有执行,
Fault
消息转到
。\u跳过了
队列


我做错了什么?

是否在初始状态下处理
CustomCommands
,并引发异常?这将阻止保存saga实例,因此在发布故障后,将导致忽略故障,因为任何
期间都不包括初始或最终状态。如果要在初始状态下处理故障,则需要显式添加它

Initially(WhenError());
DuringAny(WhenError());

谢谢你的回答!这不是我的问题,我在定制传奇州处理faulds。但最好知道,在任何时候,一开始都不会遇到
。我的问题在于Saga的错误配置——其中一个消费者被错误地指向Saga队列并处理他不知道的类型的消息。