2012-03-21 62 views
0

我有一個C#(Visual Studio 2010)應用程序來管理Microsoft Active Directory中的對象。如果我想創建一個郵箱用戶啓用我在這一點上得到一個InvalidCastException:當在活動目錄中創建啓用郵箱的用戶時發生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服務器上開發。這就是爲什麼我安裝了Exchange管理工具。但不幸的是,這個錯誤仍然存​​在

任何人都可以幫到我嗎?

在此先感謝。

+0

您的代碼調用'(IMailboxStore)NewUser'而不是'(IMailboxStore)NewUser.NativeObject' – 2012-03-24 17:05:33

+0

感謝您的回覆。我也試過你的版本,但我得到了同樣的錯誤。 – Martin 2012-03-25 07:17:04

+0

你是如何得到你的互動的?您是否在運行代碼的機器上安裝了「Exchange Management 組件」? – 2012-03-25 16:05:02

回答

0

雖然這個問題很舊,但我想爲我的問題發佈一個解決方案,我剛纔發現了這個問題。也許這可以幫助有同樣問題的其他人。

在項目屬性 - >配置管理器 - > Active Solution Platform中我選擇了64位平臺。這就是問題發生的原因。 IMailboxStore接口對於64位不存在。所以我把設置改回到了32位,錯誤消失了。

相關問題