按照下面的链接在Web API中实现Redis缓存。 https://docs.microsoft.com/en-us/azure/redis-cache/cache-dotnet-how-to-use-azure-redis-cache
缓存第一次可以正常运行,但由于错误而失败
“无法访问已处置的对象”
...在随后的阅读中。
如以上博客中所述,我将连接放置在方法的末尾,并再次引发该方法并引发上述异常: lazyConnection.Value.Dispose();
也尝试将连接属性封装在另一个类中,如此处所述。但是,由于它们被声明为静态的,因此在所有实例中都保留相同的值,因此在处置连接时,后续调用将导致相同的异常。
https://www.c-sharpcorner.com/article/using-redis-cache-in-web-api/
有两种方法可以解决此问题:
请勿处置该连接,并在所有呼叫中重复使用同一连接。
使Cache连接处于非静态状态,以便为每个调用创建和处置新连接。
正确的做法是什么?
答案 0 :(得分:0)
您不应该在每次通话时都建立连接,这将导致效率低下。 如果可能,也应避免静态连接。它会使单元测试更难编写,并阻止您在同一过程中建立多个连接。