簡體   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