EWS Managed API를 사용하여 CRM과 Exchange Server를 동기화합니다. EWS Mangage API 1.1을 사용하는 한 모든 것이 완벽하게 작동했습니다. 이제 Api 2.0 (Dll-version : 15.0.516.14)으로 업데이트했고 다른 폴더에서 동일한 폴더에 바인딩하고 이유를 이해하지 못하는 경우 ArgumentException이 발생합니다.ArgumentException on async Folder.Bind
private void TestAsyncFolderGet()
{
try
{
ExchangeService service = this.GetService();
Parallel.For(0, 20, (i) =>
{
Folder fo = Folder.Bind(service, WellKnownFolderName.Inbox);
});
}
catch (Exception ex)
{
this.State = "Failed: " + ex.Message;
}
}
private ExchangeService GetService()
{
ExchangeService result = new ExchangeService(ExchangeVersion.Exchange2010);
result.AutodiscoverUrl("[email protected]");
return result;
}
내 실제 시나리오는 변경 비동기를 pullsubscription를 사용하여 처리 변경된 항목을 받고 그 메신저입니다 :
다음은 예외를 발생시키는에 SampleCode입니다. 이 작업을 수행하는 동안 일부 정보를 얻기 위해 부모 폴더에 바인딩됩니다.예외를 피할 수있는 사람이 있습니까?
스택 추적 및 예외 정보를 정기적으로 :
System.ArgumentException은 : 동일한 키 가진 항목이 이미 추가되었습니다. Microsoft.Exchange.WebServices.Data.ExchangeService.FindFolders에서
System.Collections.Generic.Dictionary2.Insert(TKey key, TValue value, Boolean add) at Microsoft.Exchange.WebServices.Data.ExchangeServiceBase.SaveHttpResponseHeaders(WebHeaderCollection headers) at Microsoft.Exchange.WebServices.Data.SimpleServiceRequestBase.ReadResponse(IEwsHttpWebResponse response) at Microsoft.Exchange.WebServices.Data.ExchangeService.InternalFindFolders(IEnumerable
1 parentFolderIds, SearchFilter searchFilter, FolderView보기 ServiceErrorHandling errorHandlingMode) 에서
(FolderId parentFolderId, FolderView보기)
BTW : 불행히도 이것은 Exchange Webservices의'FindItems' 메소드에도 적용됩니다. –