2012-03-21 9 views
0

Microsoft Active Directoryのオブジェクトを管理するC#(Visual Studio 2010)アプリケーションがあります。私は、メールボックスが有効なユーザーを作成したい場合は、私はこの時点でInvalidCastExceptionが取得:Active Directoryにメールボックスが有効なユーザーを作成するときにInvalidCastExceptionが発生する

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()); 
    } 
} 

私は交換サーバではないクライアント上で開発しています:

IMailboxStore mailbox = (IMailboxStore)NewUser.NativeObject; 

ここに私の完全なコードです。そのため、Exchange管理ツールをインストールしました。しかし、残念ながらこのエラーはまだ発生します。

誰でも手伝ってもらえますか?

ありがとうございます。

+0

あなたのコードは、 '(IMailboxStore)NewUser.NativeObject'の代わりに'(IMailboxStore)NewUser'を呼び出していました。 –

+0

あなたの返事をありがとう。あなたのバージョンも試しましたが、同じエラーが発生します。 – Martin

+0

あなたはどのようにあなたの相互運用を得ましたか?コードを実行しているマシンに「Exchange Management Components」をインストールしましたか? –

答えて

0

この質問は非常に古いですが、私は少し前に発見した私の問題の解決策を投稿したいと思います。たぶんこれは、同じ問題を抱えている他の人に役立つかもしれません。

プロジェクトプロパティ - >構成マネージャ - >アクティブソリューションプラットフォームでは、64ビットプラットフォームを選択しました。そのため、問題が発生しました。 IMailboxStoreインターフェイスは、64ビット版では存在しませんでした。だから私は設定を32ビットに戻してしまい、エラーはなくなった。

関連する問題