У меня есть функция, которая проходит через несколько определенных папок в почтовом ящике. Каждая из папок содержит другую папку под названием «Завершить». Нижеприведенный код находит эту «полную» папку и получает ее FolderId
.ExchangeService.FindFolders не возвращает никаких папок
При запуске код работает нормально, а через некоторое время FindFoldersResults findFolderProcessed = service.FindFolders(folder.Id, new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "Complete"), view);
не возвращает никаких папок. Выполняя код, все кажется, что он должен работать, но findFolderProcessed.Folders
пуст.
Зачем это работать для нескольких папок, а затем остановить?
ServicePointManager.ServerCertificateValidationCallback =
((sender, certificate, chain, sslPolicyErrors) => true);
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
service.Credentials = new NetworkCredential("xxx", "xxx", "xxx");
service.AutodiscoverUrl("[email protected]");
service.Url = new Uri("https://xxx/ews/exchange.asmx");
FolderView view = new FolderView(int.MaxValue);
view.PropertySet = new PropertySet(BasePropertySet.IdOnly);
view.PropertySet.Add(FolderSchema.DisplayName);
view.Traversal = FolderTraversal.Deep;
SearchFilter[] parameters = new SearchFilter[3];
parameters[0] = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "x1");
parameters[1] = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "x2");
parameters[2] = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "x3");
SearchFilter.SearchFilterCollection filterCollection = new SearchFilter.SearchFilterCollection(LogicalOperator.Or, parameters);
FindFoldersResults findFolder = service.FindFolders(new FolderId(WellKnownFolderName.Inbox, new Mailbox("[email protected]")), filterCollection, view);
foreach (Folder folder in findFolder.Folders)
{
//FindFoldersResults tempResults = service.FindFolders(folder.Id, view);
FindFoldersResults findFolderProcessed = service.FindFolders(folder.Id, new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "Complete"), view);
FolderId ProcessedFolderID = findFolderProcessed.Folders[0].Id;
//Other Processing
}
EDIT: Пример структуры папок
x1
-> Complete
x2
-> Complete
x3
-> Complete
...
xn
-> Complete
Есть около 50 папок, структурированы точно так же.
У вас возникла проблема с выпуском больших объектов, которые возникают здесь, когда и где вы когда-либо располагали созданных вами экземпляров 'new'd'. – MethodMan
Можете ли вы воспроизвести это? Это происходит для определенной папки или происходит случайным образом? Можете ли вы показать свою структуру папок? – khlr
MethodMan - Объекты, расположенные позже в коде, но эта проблема возникает, прежде чем я захочу распорядиться любым из них. khlr - Могу ли я воспроизвести это? Да, я воспроизвожу его каждый раз, когда я его запускаю. Кажется, это все те же папки каждый раз, я делаю больше испытаний вокруг этого, но я не знаю, почему. В главном вопросе я описал структуру папок. – anothershrubery