繁体   English   中英

C#Azure Redis缓存-无法访问已处置的对象异常

[英]C# Azure Redis Cache - Cannot access a disposed object exception

按照以下链接在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/

我可以通过以下两种方法解决此问题:

  1. 不要处置该连接,并且不要对所有呼叫重复使用同一连接。

  2. 使Cache连接为非静态,以便为每个调用创建并释放一个新连接。

正确的做法是什么?

您不应该在每次通话时都建立连接,这样会造成效率低下。 如果可能,也应避免静态连接。 它会使单元测试更难编写,并阻止您在同一过程中建立多个连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM