Я пытаюсь получить элемент с помощью mapiNameSpace.GetItemFromID (entryId, storeID). Я использую режим частичного кэширования обмена (т. Е. Кеш только на месяц). Метод отлично работает для кешированных элементов. Но когда я пытаюсь это за пункт старше месяца, ниже исключениеOutlook: GetItemFromID не работает, если идентификатор хранилища задан в режиме частичного кэширования Exchange
System.Runtime.InteropServices.COMException (0x8004010F): The message you specified cannot be found.
at Microsoft.Office.Interop.Outlook.NameSpaceClass.GetItemFromID(String EntryIDItem, Object EntryIDStore)
Но если я пытаюсь его только EntryID и она работает. Но это займет много времени, так как оно будет искать все магазины.
В чем причина ошибки при использовании параметра storeID в режиме частичного кэширования?
P.S. Эта проблема возникает только в частичном режиме кэширования Exchange в настройках учетной записи Outlook. Не когда полностью включено/выключено
Thankks. Относительно – shrikanthbat
Спасибо. Поэтому я думаю, что не должно быть проблем с производительностью с идентификатором записи или без него, если магазин уже открыт в текущем сеансе. Моя точка была, два элемента в одной папке, один в локальном кеше и другой в онлайн-режиме, Я вижу, что Store-entryId такой же как для OutlookSpy, так и для кода. Но при вызове GetItemFromID с entryId и storeID элемент из Интернета бросает это исключение. Но просто использование только entryId работает нормально. Итак, у пункта в онлайн-версии есть другой storeEntryId по сравнению с кэшированным товаром? – shrikanthbat
Если элемент присутствует только в интернет-магазине, Outlook должен подключиться к серверу, чтобы открыть его (в отличие от локального файла OST), так что вы не ожидаете, что он займет больше времени? –