Microsoft Exchange Web服务:GetUserAvailability异常:System.ArgumentException:已添加具有相同键的项

时间:2014-12-04 13:30:14

标签: multithreading thread-safety exchangewebservices argumentexception

        try

        {                

            results = this.exchangeService.GetUserAvailability(attendees, new TimeWindow(startTime, endTime), AvailabilityData.FreeBusy);           

         }

        catch (Exception ex)

        {

            string attendeesString = string.Empty;

            foreach (AttendeeInfo item in attendees)

            {

                attendeesString += item.SmtpAddress + "; ";

            }



            LogData logData = MethodLogUtilityForExchange.GetLogDataGetAttendeesAvailabilityDebug(attendeesString, startTime, endTime, ex);              

            LogUtility.LogException(logData, "EWS GetAttendeesAvailability Exception", ex, LogCategory.MethodInformation);

            throw;

        }

异常堆栈跟踪:

ExceptionSystem.ArgumentException:已添加具有相同键的项目。

at System.Collections.Generic.Dictionary`2.Insert(TKey key,TValue value,Boolean add)

at Microsoft.Exchange.WebServices.Data.ExchangeServiceBase.SaveHttpResponseHeaders(WebHeaderCollection headers)

at Microsoft.Exchange.WebServices.Data.SimpleServiceRequestBase.ReadResponse(HttpWebResponse response)

at Microsoft.Exchange.WebServices.Data.GetUserAvailabilityRequest.Execute()

at Microsoft.Exchange.WebServices.Data.ExchangeService.GetUserAvailability(IEnumerable`1与会者,TimeWindow timeWindow,AvailabilityData requestedData)

at Intel.Exchange.WebServices.Extension.ExchangeServiceManager.GetAttendeesAvailability(List`1与会者,DateTime startTime,DateTime endTime)

您能帮助理解这个问题吗?我们这里没有明确处理任何词典。但我们仍然看到字典键错误。不确定会出现什么问题。

1 个答案:

答案 0 :(得分:0)

您可能没有使用任何词典,但显然EWS处于HTTP响应处理中。几乎看起来EWS已经返回了一个重复的响应头。您可能需要获得Fiddler跟踪或其他类似内容才能看到。要检查的一件事(虽然这会导致这个错误的方式超出我的意义):做每个与会者'有不同的SMTP地址?只是在黑暗中拍摄。