Я создал веб-приложение, которое использует Redemption для чтения почтового ящика, назовем его [email protected]. Он отлично работает с использованием localhost, но когда я его развертываю, я получаю это исключение.
Ошибка System.Runtime.InteropServices.COMException (0x80004005): создание экземпляра COM-компонента с идентификатором CLSID {29AB7A12-B531-450E-8F7A-EA94C2F3C05F} из IClassFactory завершилось неудачно из-за следующей ошибки: 80004005. в System.HandreuntimeType (тип RuntimeType, булева publicOnly, булева NOCHECK, булева & canBeCached, RuntimeMethodHandleInternal & т е р, булева & bNeedSecurityCheck) при System.RuntimeType.CreateInstanceSlow (Boolean publicOnly, Boolean, Boolean skipCheckThis fillCache) в System.RuntimeType.CreateInstanceDefaultCtor (Boolean publicOnly, булевой skipVisibilityChecks, булевой skipCheckThis , Boolean fillCache) в System.Activator.CreateInstance (тип типа, логическое значение nonPublic)
Я предполагаю, что мой сервер использует своего сетевого пользователя в качестве пользователя по умолчанию для входа в почтовый ящик вместо текущего пользователя Windows NT, обращающегося к веб-приложению. Как мне заставить сервер или мой код RDO использовать текущего пользователя NT с помощью приложения с RDO?
Я установил расширение MAPI на свой сервер и зарегистрировал dll в реестре.
Мой код RDO выглядит так
RDOSession Session = null;
rdoDefaultFolders olFolderInbox = rdoDefaultFolders.olFolderInbox;
Session = new RDOSession();//this throws the exception above
Session.LogonExchangeMailbox("[email protected]", outLookServer);
objFolder = Session.GetDefaultFolder(olFolderInbox);