2017-01-17 16 views
0

Active Directoryでプログラムで属性を設定しようとしています。ローカルで実行しているときに動作しますが、IISサーバーに展開して実行すると、自動的に失敗します。Active Directory C#展開時に拡張属性を設定できません

try 
{ 
     using (PrincipalContext context = new PrincipalContext(ContextType.Domain, null, _DomainDN)) 
     { 
      DirectoryEntry searchRoot = new DirectoryEntry("LDAP://DC=-----,DC=-----,DC=-----"); 
      DirectorySearcher search = new DirectorySearcher(searchRoot); 
      search.Filter = "(&(objectClass=user)(userPrincipalName="; 
      search.Filter = search.Filter + upn + "))"; 
      search.SearchScope = SearchScope.Subtree; 

      SearchResultCollection rs = search.FindAll(); 

      foreach (SearchResult r in rs) 
      { 
       DirectoryEntry entryToUpdate = r.GetDirectoryEntry(); 
       entryToUpdate.Properties["extensionAttribute1"].Value = "1"; 
       entryToUpdate.CommitChanges(); 
      } 
     } 
} 
catch(Exception e) 
{ 
    //.....FAILS SILENTLY. NO ERROR THROWN 
} 

誰もこれまでの解像度を持っている場合、私は非常に感謝される次のように

このための私のコードです。

ありがとうございます!

+0

コンテキストの宣言の直後にVisual Studioでブレークポイントを設定すると、PrincipalContextに内部例外または拡張例外があるかどうかを確認しましたか? –

+0

権限の問題のようです。別の認証で異なるPrincipalContext初期化を試すことができますか? – VitaliyK

+0

@MikaelPuusaari Visual Studioでブレークポイントを設定することはできません。ローカルではなく、デプロイされたときにのみ発生します。 – DaRoGa

答えて

1

すべてのActive Directoryサービスは、IISをホストしているマシンのサーバーマネージャーを介してインストールされていますか? LDAPクエリを実行するには、それらを実行する必要があります。 ありがとう

関連する問題