Разработка для : Outlook 2016
Надстройка : VSTO (C #)
Моя компания работает на O365 (Exchange), и я разрабатываю надстройку, которая собирает информацию об их пользователях и обменивается ими. Однако, похоже, что когда в настройках учетной записи Outlook настроен режим кэширования Exchange, функция GetExchangeUser () возвращает ноль.
Если я отключаю клиенты в режиме кэширования Exchange, все работает нормально. Однако моя компания хочет оставить эту функцию включенной.
По моему грубому пониманию, GetExchangeUser () работает только при подключении к серверу Exchange. Я подозреваю, что режим кэширования приводит к тому, что это происходит не всегда, и поэтому метод не работает. Так что мне интересно ..
- Как заставить (временно) Outlook подключиться к Exchange, чтобы GetExchangeUser () работал?
Существуют ли альтернативные способы сбора информации о пользователях Exchange?
// Create a singleton of the Application instance.
Outlook.Application app = new Outlook.Application();
// Get the current user object.
Outlook.ExchangeUser currentUser = app.Session.CurrentUser.AddressEntry.GetExchangeUser();
// ***** currentUser == null when "Use Cached Exchange Mode" is enabled.
// ***** currentUser == Outlook.ExchangeUser object when "Use Cached Exchange Mode" is disabled.
// Set the form details.
textBoxName.Text = currentUser.Name;
textBoxEmployeeID.Text = currentUser.Alias;
Я попробовал несколько предложений, которые нашел в Интернете, но ни одно из них не сработало. Такие как ..
- Принудительное обновление автономной адресной книги (не работает).
- Удалите старую автономную адресную книгу, затем принудительно обновите (не работает).