Ошибка HRESULT E_FAIL при создании почтового ящика Exchange (CDOEXM.IMailboxStore.CreateMailbox) - PullRequest
1 голос
/ 16 января 2009

Я пытаюсь автоматизировать процесс создания почтового ящика Exchange для пользователей AD и столкнулся с проблемой. При вызове метода CreateMailbox я получаю сообщение об ошибке «Ошибка HRESULT E_FAIL возвращена при вызове компонента COM». Я установил средства управления Exchange и сослался на них и использую олицетворение для разрешений.

Вот код:

            ActiveDs.IADsUser adUser = (ActiveDs.IADsUser)user.NativeObject;
            adUser.AccountDisabled = !Active;
            user.CommitChanges();

            //Set Password
            user.Invoke("SetPassword", Password);
            user.CommitChanges();            

            //Create Mailbox
            IMailboxStore mailbox;
            mailbox = (IMailboxStore)adUser;
            mailbox.CreateMailbox("LDAP://CN=StandardUsers,CN=StandardUsers,CN=InformationStore,CN=xxxxx," +
                "CN=Servers,CN=First Administrative Group,CN=Administrative Groups," +
                "CN=xxxxx Main,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=xxxxx,DC=com");             
            user.CommitChanges();

1 Ответ

0 голосов
/ 16 января 2009

Мой первоначальный ответ был довольно странным; Я совершенно неправильно понял код. То, что у вас есть, похоже на то, что мы работали в рабочей среде в течение Exch 2003. Мы назвали код из веб-службы, которая работала как учетная запись с правами администратора в AD и Exchange.

Во всяком случае, это то, что MSDN сейчас говорит ссылка :

Важно Из-за проблем с многопоточной аутентификацией и неожиданных результатов, наблюдаемых в многопоточных средах выполнения, Microsoft® не поддерживает использование CDO для управления Exchange (CDOEXM) на страницах Microsoft ASP.NET, веб-страницах ASP или в веб-сервисах. Чтобы создать веб-приложения управления Microsoft Exchange, использующие функциональные возможности CDOEXM, Microsoft рекомендует обернуть CDOEXM в пакет модели объектов с распределенными компонентами (DCOM) и вызвать этот пакет из своего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...