Jakie części rurociągu zostały utracone?
Żaden potok żądania nie jest wykonywany:
myRequestService.Any(e.Request);
Fizycznie wywołuje tylko Any
Metoda C# Twojej MyRequestService
klasy, nie robi (ani nie może) robić niczego innego.
Zalecanym sposobem wywoływania innych Usług podczas Żądania Usługi jest użycie Bramy Usług.
Ale jeśli chcesz wywołać usługę poza żądaniem HTTP, możesz użyć bramy RPC do wykonywania niezaufanych usług, ponieważ wywołuje ona pełny potok żądań i konwertuje odpowiedzi na błędy HTTP na wpisane odpowiedzi na błędy:
HostContext.AppHost.RpcGateway.ExecuteAsync()
Do wykonywania wewnętrznych/zaufanych usług poza żądaniem usługi można użyć HostContext.AppHost.ExecuteMessage, tak jak jest to używane przez ServiceStack MQ, który stosuje filtry żądań/odpowiedzi żądania wiadomości, filtry i zdarzenia dotyczące czynności serwisowych.
Zarejestrowałem się w container.AddScoped
Nie używaj zależności z zakresem żądania poza żądaniem HTTP, użyj Singleton, jeśli zależności są ThreadSafe, w przeciwnym razie zarejestruj je jako przejściowe. Jeśli chcesz przekazać magazyn na żądanie, przekaż je w IRequest.Items
.