Das Problem hier ist Request-Response.
So funktioniert es:
- MT fügt die Anforderungs-ID in die Saga-Zustandseigenschaft
UrlRequestId
ein - Die Anfrage wird gesendet
- Sie erhalten eine Antwort zurück, die Antwort enthält die Anfordereradresse und die Anfrage-ID in ihrem Header
- MT verwendet das Saga-Repository zum Finden Ihre Instanz mit
repo.Find(x => x.UrlRequestId == message.Headers.RequestId)
(daher ist dies nicht der echte Code, aber das passiert) - Redis (oder jedes andere KVS) unterstützt keine Abfragen, daher unterstützen wir auch keine Abfragen in Saga-Repositories und Sie erhalten die Ausnahme „nicht implementiert“
Ihre Korrelationsangabe für Antworten ist seit Request
wirkungslos verwendet immer Header, um eine Saga-Instanz zu finden, zu der die Antwort gehört.
Sie können dies umgehen, indem Sie Request-Response nicht verwenden und stattdessen ein Ereignis mit context.Publish(new LinkCreatedEvent { ... , CorrelationId = context.Message.CorrelationId })
ausgeben und unter Verwendung der üblichen Korrelation.