sql >> Database >  >> NoSQL >> Redis

ServiceStack:pijplijn herstellen bij het handmatig aanroepen van een service?

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 .




  1. Overweeg de bovenstaande items opnieuw te bekijken of een bean van het type 'org.springframework.data.redis.core.RedisTemplate' in uw configuratie te definiëren

  2. Verwijder alle niet-utf-8-symbolen uit string

  3. LogicException:zorg ervoor dat de PHP Redis-extensie is geïnstalleerd en ingeschakeld

  4. Aan de slag met Redis Client API's