2015-04-13 20 views
5

Bir süre buna oldum ve her zaman alıyorum:Temel Bağlam ile Active Directory'ye nasıl bağlanır?

System.DirectoryServices.AccountManagement.PrincipalServerDownException

bence

benim bağlantı kurulumu (bağlantı dizesi) yanlış olduğu anlamına gelir . Active Directory nerede olduğunu bilgisayarda cmd üzerinde "dsquery sunucusu" yazdığınızda

alıyorum:

"CN = DCESTAGIO, CN = SUNUCULARI'NI, CN = Default-First-Site-Name, CN = Ben şu şekillerde bağlanarak aşağıdaki denedim

", DC = yerel Sites, CN = Configuration, DC = estagioit:

1:

PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "192.168.56.101", "DC=estagioit,DC=local"); 

2:

PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "192.168.56.101/DC=estagioit,DC=local"); 

3:

PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "192.168.56.101/CN=DCESTAGIO,DC=estagioit,DC=local"); 

4:

PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "192.168.56.101/CN=DCESTAGIO,CN=SERVERS,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=estagioit,DC=local"); 

5:

PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "LDAP://192.168.56.101/CN=Users,DC=estagioit,DC=local"); 

Ve bazı başka yollar ...

Neyin yanlış olduğu ve bu bağlantıyı nasıl kurabilirim konusunda herhangi bir fikir var mı?

Not: IP ping için kullandığım gibi doğru görünüyor ve çalışıyor.

PSS: Asla herhangi bir öneriniz varsa, ASAP'ın çalışmasına gerçekten ihtiyacım var. Eğer PrincipalContext kurucular belgelerine bakacak olursak

cevap

15

, oldukça açık olmalıdır:

public PrincipalContext(ContextType contextType, string name) 

veya

public PrincipalContext(ContextType contextType, string name, string container) 

Yani kısaca gerekir:

  • , içerik türünü (burada: ContextType.Domain)
  • alan adı (sadece "Netbios" adını deneyin, örn."AlanAdınız" - ya da "default" etki)
  • isteğe LDAP yolu olarak bir kap (NULL bırakın - herhangi LDAP:// önek bir "seçkin" adı, tam yol ama olmadan)

Yani böyle bir şey denemek :

PrincipalContext thisPrincipalContext = 
    new PrincipalContext(ContextType.Domain, "ESTAGIOIT"); 

veya

PrincipalContext thisPrincipalContext = 
    new PrincipalContext(ContextType.Domain, null); // default domain 

veya

PrincipalContext thisPrincipalContext = 
    new PrincipalContext(ContextType.Domain, "ESTAGIOIT", "DC=estagioit,DC=local"); 

veya

PrincipalContext thisPrincipalContext = 
    new PrincipalContext(ContextType.Domain, null, "CN=Users,DC=estagioit,DC=local"); 
+0

sayesinde Bana gerçekten adamı kurtardı! ;) –

+0

İlgili bir sorum var. Umarım bana yardımcı olabilirsiniz: http://stackoverflow.com/questions/42971315/finding-active-directory-users-from-2-ou – user2931442

İlgili konular