我有一个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管理工具的原因。但遗憾的是,这个错误仍然存在。
任何人都可以帮助我?
提前致谢。
答案 0 :(得分:0)
虽然这个问题已经很久了,但我想发布一个我刚才发现的问题的解决方案。也许这可以帮助其他人解决同样的问题。
在项目属性中 - >配置管理器 - > Active Solution Platform我选择了64位平台。这就是问题发生的原因。 IMailboxStore接口对于64位不存在。所以我已将设置更改回32位,错误消失了。