是否应该将服务器对通过Gateway.Send()从另一个服务中进行的服务调用的响应进行缓存?
我已经看到您的评论,指出如果我通过[CacheResponse]属性启用缓存,那么它应该可以工作。
但是,这并不是为我缓存响应。我正在使用ServiceStack v5.1.0
谢谢
答案 0 :(得分:1)
ServiceStack缓存功能仅缓存HTTP请求,这些HTTP请求在已注册的Cache provider中进行序列化,并直接写入响应输出流。
处理中的Service Gateway请求永远不会序列化,缓存或写入流中,如果网关请求被路由到远程服务,则它们实际上是在调用内部服务时在处理C#方法。缓存后,它将根据正常的HTTP请求返回缓存的响应。
否则,如果要缓存“内存中的服务网关”请求,则可以在服务实现中使用ConcurrentDictionary,并像缓存任何昂贵的C#逻辑时那样记住结果。