如何使用 Servicestack 缓存内部服务调用

How to cache internal service calls with Servicestack

是否可以在另一个服务中缓存服务器对通过 Gateway.Send() 完成的服务调用的响应?

我看到您评论说如果我使用 [CacheResponse] 属性启用缓存它应该可以工作。

但是,它没有为我缓存响应。我正在使用 ServiceStack v5.1.0

谢谢

ServiceStack 缓存功能仅缓存在注册的 Cache provider 中序列化并直接写入响应输出流的 HTTP 请求。

In Process Service Gateway 请求永远不会被序列化、缓存或写入 Stream,如果网关请求被路由到远程,它们实际上是调用内部服务时的进程内 C# 方法调用缓存的服务将 return 按照正常 HTTP 请求缓存响应。

否则,如果您想缓存内存中服务网关请求,您可以在服务实现中使用 ConcurrentDictionary 并像缓存任何昂贵的 C# 逻辑时那样记住结果。