InvalidCastException при создании пользователя с включенным почтовым ящиком в активном каталоге - PullRequest
0 голосов
/ 21 марта 2012

У меня есть приложение C # (Visual Studio 2010) для управления объектами в Microsoft Active Directory. Если я хочу создать пользователя с включенным почтовым ящиком, я получаю InvalidCastException в этот момент:

IMailboxStore mailbox = (IMailboxStore)NewUser.NativeObject;

Вот мой полный код:

public void CreateUser(string Path,
                       string sAdminUserName,
                       string sAdminUserPassword,
                       string LastName,
                       string FirstName,
                       string sUserName,
                       string sUserPassword,
                       string sHomeMDB)
{
    DirectoryEntry dirEntry = new DirectoryEntry(Path, sAdminUserName, sAdminUserPassword);
    DirectoryEntry NewUser = dirEntry.Children.Add("CN=" + LastName + "." + FirstName, "user");

    NewUser.Properties["samAccountName"].Value = sUserName;

    NewUser.CommitChanges();
    NewUser.Invoke("SetPassword", new object[] { sUserPassword});
    NewUser.Properties["userAccountControl"].Value = 0x200;
    NewUser.CommitChanges();

    try
    {
        IMailboxStore mailbox = (IMailboxStore)NewUser;
        mailbox.CreateMailbox(sHomeMDB);
        NewUser.CommitChanges();
    }
    catch (InvalidCastException e)
    {
        MessageBox.Show(e.Message.ToString());
    }
}

Я работаю на клиенте, который не является сервером обмена. Вот почему я установил Инструменты управления Exchange. Но, к сожалению, эта ошибка все еще происходит.

Кто-нибудь может мне помочь?

Заранее спасибо.

1 Ответ

0 голосов
/ 13 июля 2013

Хотя этот вопрос очень старый, я хотел бы опубликовать решение моей проблемы, которое я узнал некоторое время назад. Может быть, это может помочь другим людям с той же проблемой.

В свойствах проекта -> Configuration Manager -> Active Solution Platform я выбрал 64-битную платформу. Вот почему проблема произошла. Интерфейс IMailboxStore просто не существует для 64-битных. Поэтому я изменил настройку обратно на 32-разрядную, и ошибка исчезла.

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