Hi
ich bin neu im Forum hier und habe gleich eine Frage
Hoffe mir kann jemand helfen.
Wir führen den Folder.Bind(...) in der EWS auf mehreren Threads aus. Das hat soweit auch sehr gut funktioniert.
Aber seit dem Update auf EWS 2.0 (DLL 15.0.516.14)
Gibt es Fehler die auf fehlende ThreadSafety in zusammenhang mit einem dictionary hindeuten. (s.u.)
Habe unten auch einen Beispielcode angehängt der das Verhalten immer wieder mal reproduziert
Kann jemand Tipps geben oder dieses Verhalten bestätigen / wiederlegen ?
ZitatAlles anzeigenSystem.ArgumentException: An item with the same key has already been added.
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(IEwsHttpWebResponse response)
at Microsoft.Exchange.WebServices.Data.ExchangeService.InternalFindFolders(IEnumerable`1 parentFolderIds, SearchFilter searchFilter, FolderView view, ServiceErrorHandling errorHandlingMode)
at Microsoft.Exchange.WebServices.Data.ExchangeService.FindFolders(FolderId parentFolderId, FolderView view)
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("test@foo.com");
return result;
}
Alles anzeigen