Quali parti della pipeline sono andate perse?
Nessuna delle pipeline di richieste viene eseguita:
myRequestService.Any(e.Request);
Sta solo invocando fisicamente Any
Metodo C# del tuo MyRequestService
classe, non fa (né non può) fare nient'altro.
Il modo consigliato per richiamare altri Servizi durante una Richiesta di servizio consiste nell'utilizzare il Service Gateway.
Ma se desideri invocare un servizio al di fuori di una richiesta HTTP, puoi utilizzare il gateway RPC per eseguire servizi non attendibili poiché richiama l'intera pipeline delle richieste e converte le risposte di errore HTTP in risposte di errore tipizzate:
HostContext.AppHost.RpcGateway.ExecuteAsync()
Per eseguire servizi interni/affidabili al di fuori di una richiesta di servizio, puoi utilizzare HostContext.AppHost.ExecuteMessage come utilizzato da ServiceStack MQ che applica filtri di richiesta/risposta di richiesta di messaggio, filtri di azione di servizio ed eventi.
Mi sono registrato con container.AddScope
Non utilizzare le dipendenze con ambito richiesta al di fuori di una richiesta HTTP, utilizzare Singleton se le dipendenze sono ThreadSafe, altrimenti registrarle come transitorie. Se devi passare lo spazio di archiviazione per richiesta, passalo in IRequest.Items
.