2011-07-17 2 views
1

EWS 관리 API에서 StreamingSubscriptionConnection 객체를 사용하는 응용 프로그램을 개발 중입니다.StreamingSubscriptionsConnection throwing 키를 찾을 수 없음 예외

는 네트워크 연결이 스택 트레이스 예외를 throw 일정 기간 동안 손실되면이

System.Collections.Generic.KeyNotFoundException was unhandled 
    Message=The given key was not present in the dictionary. 
    Source=mscorlib 
    StackTrace: 
     at System.Collections.Generic.Dictionary`2.get_Item(TKey key) 
     at Microsoft.Exchange.WebServices.Data.StreamingSubscriptionConnection.IssueSubscriptionFailures(GetStreamingEventsResponse gseResponse) 
     at Microsoft.Exchange.WebServices.Data.StreamingSubscriptionConnection.HandleServiceResponseObject(Object response) 
     at Microsoft.Exchange.WebServices.Data.HangingServiceRequestBase.ParseResponses(Object state) 
     at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state) 
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) 
     at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 
     at System.Threading.ThreadPoolWorkQueue.Dispatch() 
     at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback() 
    InnerException: 

누구나 이런 일이 될 수있는 이유는 어떤 생각을 가지고 보여줍니다?

미리 감사드립니다.

답변

1

클라이언트가 이미 종료되어 클라이언트에서 제거 된 subscriptons에 대한 알림을받는 것으로 보입니다. StreamingSubscriptionConnection 클래스는 내부 구독 목록을 유지 관리합니다. 서버로부터 실패 이벤트를 수신하면 클라이언트에 통지하고 목록에서 등록을 제거합니다. 이 구독에 대해 다른 실패 이벤트가 발생하면보고있는 예외가 생성됩니다.

문제를 해결하려면 Fiddler (http://www.fiddler2.com/fiddler2/)를 사용하여 클라이언트와 Exchange 서버간에 반환되는 트래픽을 모니터링 해보십시오. 이는 응용 프로그램과 Exchange 사이의 프록시 역할을하며 SSL 트래픽을 해독 할 수 있습니다. 아마 이것은 당신에게 무슨 일이 일어나고 있는지 더 많은 통찰력을 줄 것입니다.