狀況

假設您使用 Microsoft Lync Server 2013 持續聊天 SDK 開發的應用程式。應用程式建立多個端點,並在端點上的使用者使用應用程式在多個執行緒中執行動作。例如,端點上的使用者加入的聊天室、 傳送一封郵件,然後離開聊天室。在此情況下,應用程式會擲回下列的未處理例外狀況,並再損毀︰

未處理的 System.Collections.Generic.KeyNotFoundException
在 System.Collections.Generic.Dictionary'2.get_Item (TKey 索引鍵)
在 Microsoft.Rtc.Collaboration.PersistentChat.Internal.ChatRoomCache.get_Item (Uri uri)
在 Microsoft.Rtc.Collaboration.PersistentChat.PersistentChatEndpoint.get_Item (Uri uri)
在 Microsoft.Rtc.Collaboration.PersistentChat.Internal.MessageHandler.HandlePartNotify (物件 messageIn)
在 Microsoft.Rtc.Collaboration.PersistentChat.Internal.MessageHandler.ProcessQueuedMessage (TransportMessage 訊息)
在 Microsoft.Rtc.Collaboration.PersistentChat.Internal.MessageRouter.HandleMessage (物件狀態)
在 System.Threading.ExecutionContext.RunInternal (ExecutionContext executionContext、 ContextCallback 回呼、 物件狀態,則為 True 的 preserveSyncCtx)
在 System.Threading.ExecutionContext.Run (ExecutionContext executionContext、 ContextCallback 回呼、 物件狀態,則為 True 的 preserveSyncCtx)
在 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
在 System.Threading.ThreadPoolWorkQueue.Dispatch()

原因

這個問題被因兩個執行緒之間,就會發生計時問題。當一個執行緒中刪除項目在字典中,並接著另一個執行緒嘗試存取的字典中的項目時,應用程式後,會擲回未處理的KeyNotFoundException例外狀況。然後,應用程式當機。

解決方案

若要解決這個問題,安裝下列的累積更新︰

Lync 伺服器 2013,核心元件的累積更新 5.0.8308.420 的2835432描述︰ 年 7 月 2013年

更多的資訊

如需有關 Lync Server 2013 持續聊天 SDK 的詳細資訊,請前往下列 Microsoft 網站︰

Lync Server 2013 持續聊天 SDK 的一般資訊

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×