Welke delen van de pijplijn zijn verloren gegaan?
Geen van de verzoekpijplijnen wordt uitgevoerd:
myRequestService.Any(e.Request);
Roept fysiek alleen de Any
. op C#-methode van uw MyRequestService
klasse, het doet (en kan ook niet) iets anders doen.
De aanbevolen manier om andere Services aan te roepen tijdens een Service Request is om de Service Gateway te gebruiken.
Maar als u een service buiten een HTTP-verzoek wilt aanroepen, kunt u de RPC-gateway gebruiken voor het uitvoeren van niet-vertrouwde services, aangezien deze de volledige Request Pipeline aanroept en HTTP-foutreacties omzet in getypte foutreacties:
HostContext.AppHost.RpcGateway.ExecuteAsync()
Voor het uitvoeren van interne/vertrouwde services buiten een serviceverzoek kunt u HostContext.AppHost.ExecuteMessage gebruiken zoals gebruikt door ServiceStack MQ, die Message Request Request/Response Filters, Service Action Filters &Events toepast.
Ik heb me geregistreerd bij container.AddScoped
Gebruik Request Scoped-afhankelijkheden niet buiten een HTTP-verzoek, gebruik Singleton als de afhankelijkheden ThreadSafe zijn, registreer ze anders als Transient. Als u opslag per verzoek moet doorgeven, geeft u deze door in IRequest.Items
.