2012-03-13 18 views
2

IDがアプリケーションプールユーザーであるWebアプリケーションにこのコードをデプロイすると、次のコードで不明なCOM例外がスローされます。 FindByIdentityメソッドが呼び出されると、例外が発生します。GroupPrincipal.FindByIdentity不明なCOM例外

System.Runtime.InteropServices.COMException:不明なエラー (0x8000500c)

using (PrincipalContext prinCon = new PrincipalContext(ContextType.Domain)) 
{ 
    GroupPrincipal groupPrin = GroupPrincipal.FindByIdentity(prinCon, name); 
} 

私は、この問題が解決されるドメインユーザーにアプリケーションプールIDを変更した場合。私はそれが最初に許可/セキュリティ上の問題だと信じさせる。ただし、このエラーはすべてのサーバーで発生するわけではなく、一部のサーバーで発生します。また、再起動するとこの問題が解決されます。

私の質問は、なぜサーバーを再起動するとこの問題が解決するのでしょうか?そして、再起動せずにこの作業を行う方法はありますか?

私はかなりの量のグーグルを行い、同じ問題を抱えている人はいませんでした。同様の問題はいくつか許可されていますが、私の問題解決に役立つものはありません。

ありがとうございます。

+0

あなたの 'name'値は何ですか?何を指定しましたか? –

+0

検索するグループの名前、文字列、たとえば "Administrators" – user1084440

+0

ドメインユーザーを使用するように変更する前に使用していたアプリケーションプールのユーザーアカウントは何ですか?ローカルユーザーアカウントですか? ここにアプリプールのユーザーアカウント名を貼り付けてください。 'GroupPrincipal.FindbyIdentity'は明らかに、LDAPクエリを実行するためにアプリケーションプールのユーザアカウントをActive Directoryに認証する必要があります。 –

答えて

0

IDタイプは指定していませんが、文字列を入力しています。おそらくその文字列を検索する方法を知らない。たとえば、文字列がguidであると仮定して解析して失敗するとします。

のようなもの試してみてください。また

var groupPrin = GroupPrincipal.FindByIdentity(prinCon, IdentityType.Name , name); 

を、間違いなく、このような管理者またはサービスアカウントとしてこれらの操作を実行する権限を持っているいくつかの資格情報を使用して、あなたのPrincipalContextを設定してみてください。

1

アプリプールアカウントを変更することは私にとっては効果的です。それはApplicationPoolIdentityユーザーでしたが、ネットワークサービスに変更した後、このエラーはなくなり、ADコードは正常に動作します。私はこれが役立つことを願っています

+0

ありがとうございます!これも私のために働いたが、私は1年以上問題なしでこのWebアプリケーションを展開してきた。突然、私はこのコードセクションを変更せずにこのエラーが発生しました。私は更新がこれに責任があるのだろうか? – Crob

関連する問題