¿Cómo me conecto a un servicio OpenLDAP instalado localmente?

He estado golpeándome la cabeza contra .Net 3.5 PrincipalContext, intentando establecer una conexión con OpenLDAP que está instalada en la misma máquina que mi IDE de Visual Studio 2010 (el nombre de la máquina es dev001).

Aquí está mi estructura LDAP simple:

base (dc = prueba, dc = com)testadmin (cn = testadmin, dc = prueba, dc = com)accounts (dc = cuentas, dc = prueba, dc = com)testuser (cn = testuser, dc = cuentas, dc = prueba, dc = com)

Aquí están los fragmentos de código que he probado:

Snippet # 1: Combinaciones de nombre: "localhost", "localhost: 389", "dev001", "dev001: 389", "test", "test.com"

PrincipalContext principalContext = new PrincipalContext(ContextType.Domain, "localhost", "dc=accounts,dc=test,dc=com", "cn=testadmin,dc=test,dc=com", "testadminpassword");

Snippet # 2 Combinaciones de nombre: "localhost", "localhost: 389", "dev001", "dev001: 389", "test", "test.com"

PrincipalContext principalContext = new PrincipalContext(ContextType.Domain, "localhost", "dc=accounts,dc=test,dc=com", "testadmin", "testadminpassword");

Todavía tengo que establecer una conexión con el servidor.

Cuando uso "localhost", "localhost: 389", "dev001", "dev001: 389" o "test", aparece el error:

System.NullReferenceException: referencia de objeto no establecida en una instancia de un objeto.

Cuando uso "test.com" aparece el error:

System.DirectoryServices.AccountManagement.PrincipalServerDownException: No se pudo contactar al servidor. ---> System.DirectoryServices.Protocols.LdapException: el servidor LDAP no está disponible.

Respuestas a la pregunta(2)

Su respuesta a la pregunta