מאפייני הבעיה
נניח לפתח יישומים באמצעות 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, מצב האובייקט, preserveSyncCtx בוליאניים)
ב- System.Threading.ExecutionContext.Run (ExecutionContext executionContext, התקשרות חזרה של ContextCallback, מצב האובייקט, preserveSyncCtx בוליאניים)
ב- System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
ב- System.Threading.ThreadPoolWorkQueue.Dispatch()
הגורם
בעיה זו נגרמת בשל בעיית תזמון המתרחשת בין שני תהליכים. כאשר הליך משנה אחד מוחק פריט במילון, ולאחר מכן הליך משנה אחר מנסה לגשת לפריט במילון, היישום מתריע על חריג שאינו מטופל של KeyNotFoundException . לאחר מכן, היישום קורס.
פתרון
כדי לפתור בעיה זו, התקן את העדכון המצטבר הבאים:
תיאור 2835432 של 5.0.8308.420 של העדכון המצטבר עבור 2013 שרת Lync, רכיבים מרכזיים: יולי 2013
מידע נוסף
לקבלת מידע נוסף אודות Lync Server 2013 עקבי צ'אט SDK, עבור אתר האינטרנט הבא של Microsoft: