症状

假定您开发的应用程序通过使用 Microsoft Lync 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 回调、 对象状态 (布尔型 preserveSyncCtx)在 System.Threading.ExecutionContext.Run,ExecutionContext executionContext,ContextCallback 回调、 对象状态 (布尔型 preserveSyncCtx)在 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()在 System.Threading.ThreadPoolWorkQueue.Dispatch()

原因

此问题是由两个线程之间发生了计时问题引起的。当一个线程删除字典中的项,然后另一个线程尝试访问字典中的项时,该应用程序会引发未经处理的KeyNotFoundException异常。然后,该应用程序崩溃。

解决方案

若要解决此问题,请安装以下累积更新︰

Lync Server 2013,核心组件的累积更新 5.0.8308.420 2835432描述︰ 2013 年 7 月

详细信息

Lync 服务器 2013年持续聊天 SDK 有关的详细信息,请访问以下 Microsoft 网站︰

Lync 服务器 2013年持续聊天 SDK 的常规信息

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。