2008-11-05 32 views
20

Estoy intentando utilizar System.DirectoryServices en un proyecto de sitio web y estoy recibiendo este error:System.DirectoryServices no se reconoce en el 'Sistema' espacio de nombres

The type or namespace name 'DirectoryServices' does not exist in the namespace 'System' (are you missing an assembly reference?)

Mi proyecto tiene una referencia a System.DirectoryServices en web.config:

<add assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 

y tengo using System.DirectoryServices en los archivos en el que necesito para usarlo.

¿Alguien tiene una pista de dónde buscar el problema?

Respuesta

6

es el servidor web (IIS o lo que sea) configurado para ejecutar la carpeta como una aplicación (es decir, muestra como una pieza), y está utilizando la versión correcta de ASP.NET? Si se ejecuta como 1.1, algunos bits podrían funcionar, pero no encontraría ese ensamblado 2.0 en el 1.1 GAC.

1

Es éste un proyecto web sitio, o un proyecto web aplicación. Con este último, las referencias se manejan a través de .csproj, es decir, a través del nodo "References" en Solution Explorer.

+1

trata de un sitio web, por lo que este no es el tema gracias de todos modos – jansokoly

8

tiro en la oscuridad: ¿Ha intentado añadir a la web.config:

<compilation debug="true"> 
    <assemblies> 
      <add assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
    </assemblies> 
</compilation> 
+0

¿qué pasa con cualquier conjunto que depende de System.DirectoryServices ? –

+1

El PublicKeyToken podría necesitar minúsculas, creo que podría ser sensible a mayúsculas y minúsculas: no tenía esta línea, y acabo de agregarla, con una copia/pega del PublicKeyToken de las propiedades de mi DLL en C : \ Windows \ Assembly (también conocido como GAC) y eso es lo que lo resolvió, para mí. – vapcguy

+0

Incluso después de agregar las referencias necesarias cuando construyo la solución se compiló con éxito y cuando ejecuté el proyecto recibí el error como _CS0234: El tipo o el nombre del espacio de nombres 'DirectoryServices' no existe en el espacio de nombres 'Sistema' (¿está usted? ¿falta una referencia de ensamblado?) _ No encontré por qué volví a tener el error después de la compilación exitosa – BNN

6

Este es un hilo muy antiguo, pero sólo para proporcionar una respuesta completa por el bien de la posteridad;)

Este problema se produce si el proyecto no se encuentra una referencia a los componentes .Net System.DirectoryServices

Al agregar esta referencia de la forma habitual que prefiera, se resolverá el problema.

+1

Era un proyecto de sitio web y tenía el ensamblado al que se hace referencia en web.config como puede ver en la pregunta. – jansokoly

+0

Me encontré con el mismo problema y yo también lo tengo en las referencias. – vapcguy

81
  1. Haga clic derecho en Referencias bajo su propia solución.
  2. Seleccionar Agregar referencia. La referencia se puede encontrar en la lista Ensambles de marco. Seleccione System.DirectoryServices y haga clic en Agregar.
+3

Lo tengo en las referencias y todavía me da el mismo error que el anterior. – vapcguy

+0

@vapcguy Comentario anterior, pero probablemente también deba agregar la Referencia * System.DirectoryServices.AccountManagement *. – TylerH

1

En el Explorador de soluciones, haga clic derecho en su proyecto, a continuación, en el menú resultante, haga clic en Agregar referencia, a continuación, bajo la pestaña .NET navegar a DirectoryServices.AccountManagement

+1

Agregó este y aún recibe el mismo error. – vapcguy

0

que tenían el mismo problema cuando intenté convertir el sitio web a la aplicación web. Parece que el hecho de que no se cargue el ensamblado debe estar relacionado con el control de versiones. cambie a web.config y agregue el ensamble como sigue. asegúrese de que la versión DLL coincida con la versión .net de su aplicación.

<configuration> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0"> 
     <assemblies> 
     <add assembly="System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
     </assemblies> 
    </compilation> 
    </system.web> 
</configuration> 

para obtener una clave pública que necesita para poner en marcha desarrollador de símbolo del sistema para VS .. cambio de directorio GAC marco relacionados con el anterior ex C: \ Windows \ Microsoft.NET \ Framework \ v4. 0.30319 y llame al ==>sn -T System.DirectoryServices.dll

Cuestiones relacionadas