Я недавно кодировал Консольное приложение.NET с помощью C#. Это - цель, должен был прочитать электронные письма в определенной папке, проанализировать их для определенных значений и сохранить их к базе данных.
Наша почтовая система, в то время, когда я первоначально кодировал это, была Exchange 2003. Однако я был проинформирован, мы будем скоро обновлять до Exchange 2010: следовательно, я создал код для работы в обеих средах.
После миграции к Exchange 2010, однако, повредилось приложение.
Приложение использует API EWS на 2010 функциональность. Когда это пытается использовать метод FindFolders ExchangeService для нахождения publicfoldersroot, это выдает исключение. Вот код:
ExchangeService service = new ExchangeService();
FindFoldersResults findRootFldrs;
service.UseDefaultCredentials = true;
service.AutodiscoverUrl("xxxxx@xxxx.xxx", delegate(string x) {
return true; });
FolderView fview = new FolderView(100);
fview.Traversal = FolderTraversal.Deep;
findRootFldrs = service.FindFolders(WellKnownFolderName.PublicFoldersRoot,
fview);
Исключение: ErrorInvalidSchemaVersionForMailboxVersion
, иначе:
Почтовый ящик, который требовали, не поддерживает указанный RequestServerVersion
Я попытался:
Установка exchangeservice к 2007 (выдает исключение: "Произошла внутренняя ошибка сервера. Операция перестала работать".)
Предоставление мне высший уровень разрешения к Общедоступной Папке (никакой эффект)
Установка Manually мои учетные данные (никакой эффект)
Я могу просмотреть общедоступные папки в Outlook 2007; publicfoldersroot свойство доступно в intellisense; код работает над локальными папками (я могу проанализировать свой ящик входящих сообщений).
Мои существующие взгляды - то, что это - установка на недавней установке Exchange 2010: к сожалению, это не действительно мое поле. Исключение говорит мне, что пытается использовать предыдущую версию Exchange. Установка его к 2007 просто заставляет код перестать работать с внутренней ошибкой сервера.
Вы пробовали esb.RequestServerVersion .Version = ExchangeVersionType. Exchange2010 (или SP1)