Carsten Løvbo Andersen Carsten Løvbo Andersen - 1 year ago 174
C# Question

Active Directory: The server could not be contacted

I keep getting the error The server could not be contacted. When i'm trying to run my code:

I've searched for a few hours, and i'm still unable contact the server.

DirectorySearcher directorySearcher = new DirectorySearcher();
string path = directorySearcher.SearchRoot.Path;
DirectoryEntry directoryEntry = new DirectoryEntry(path);

PrincipalContext pricipalContext = new PrincipalContext(ContextType.Domain, "LDAP://,DC=dk");
//GroupPrincipal group = GroupPrincipal.FindByIdentity(pricipalContext, "(CN=" + department + ")");
GroupPrincipal group = GroupPrincipal.FindByIdentity(pricipalContext, "(CN=" + department + ")");

if (group != null)
foreach (Principal principal in group.Members)
UserPrincipal tu = principal as UserPrincipal;

DirectoryEntry de = tu.GetUnderlyingObject() as DirectoryEntry;
var store = de.InvokeGet("physicalDeliveryOfficeName").ToString();
var storeNumber = de.InvokeGet("description").ToString();

employees.Add(new AdEmployees() { name = principal.Name, phone = tu.VoiceTelephoneNumber, email = tu.EmailAddress, store = store.ToString(), storeNumber = storeNumber.ToString(), link = GenerateLink(principal.Name) });

Note: I changed my domain where the AD is located to domain.

Answer Source

The key statement here seems to be "I changed my domain where the AD is located to domain."

  1. Ensure the application server is pointed to the correct DNS server.
  2. Ensure the client is pointed to the correct DNS server.
  3. This connection string looks wrong: PrincipalContext pricipalContext = new PrincipalContext(ContextType.Domain, "LDAP://,DC=dk");

  4. Connection string in #3 might work better like this:

    PrincipalContext pricipalContext = new PrincipalContext(ContextType.Domain, "DOMAIN", "DC=domain,DC=dk");

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download