2012-05-21 67 views
10

CS0234: el tipo o espacio de nombres 'DirectoryServices' no existe en el 'Sistema' espacio de nombres (? ¿Falta una referencia de ensamblado)¿El tipo o el nombre del espacio de nombres 'DirectoryServices' no existe en el espacio de nombres?

Esta página estaba trabajando bien, muestran los registros de forma directa servicios sin error pero ahora da el error anterior.

<asp:GridView ID="gvUsers" runat="server" AutoGenerateColumns="false" DataSourceID="odsUsers" 
            AllowPaging="true" AllowSorting="true" Width="100%"> 
<Columns> 
<asp:TemplateField HeaderText="User Name"> 
<ItemTemplate> 

<%#((System.DirectoryServices.DirectoryEntry)Container.DataItem).Properties["userPrincipalName"].Value%> 

    </ItemTemplate> 
    </asp:TemplateField> 
/Columns> 
</asp:GridView> 

Proyecto construye con éxito pero cuando abro la página, entonces se da el error

+0

Cuando usted está abriendo la página, es esto en la misma máquina que se está construyendo el proyecto? – mservidio

+4

¿Ha agregado una referencia al ensamblado 'System.DirectoryServices' a su proyecto? –

+1

@marc_s: Sí, el ensamblado System.DirectoryServices ya está agregado.También eliminé esto y volví a agregarlo pero el mismo error.y uno más este error también en otra máquina (sin mencionar el servidor de desarrollo). Esta página funcionaba bien desde hace muchos días. Agregué algunos proyectos de biblioteca en la solución, uno es servicio de ventana – Ali

Respuesta

0

Parece que es necesario agregar una referencia (en el proyecto) a System.DirectoryServices. Ya que lo está usando en lo que parece una página de marcado aspx, a veces el compilador los dejará pasar durante la "compilación" pero fallará cuando realmente ejecute la página.

+0

El ensamblado System.DirectoryServices ya está agregado, lo eliminé y agregué de nuevo pero el mismo error – Ali

1

Debe agregar una directiva de importación en su página asp.net. Asegúrese de que esté completamente calificado. Asegúrese también de tener una referencia al ensamblaje en su proyecto.

<%@ Assembly Name="System.DirectoryServices, Version=2.0.0.0, 
    Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" %> 
37

Después de agregar su referencia servicios de directorio, haga clic derecho en el reference e ir a properties. Establezca "CopyLocal" en verdadero.

+0

Si sucede para no ver la búsqueda de 'referencias' de su carpeta en la parte superior del panel "explorador de soluciones" para una opción 'mostrar todos los archivos'. –

0

Tuve el mismo problema. Hice una búsqueda de DirectoryServices.dll en mi carpeta de Windows. Como todas las versiones que surgieron tenían el mismo tamaño, elegí una y la copié en la carpeta bin de mi sitio web. Si no tiene una carpeta bin, simplemente créela. Una vez que hice eso, pude abrir mi página web sin errores.

7

Estoy bastante seguro de que estoy "publicando" mi aplicación de mi caja de desarrollo a mi caja de IIS de forma completamente incorrecta. Sin embargo, encontré esta solución here, y funcionó para mí.

Si está utilizando una aplicación web, en su web.config agregue el siguiente código.

<compilation debug="true" targetFramework="4.0" > 
    <assemblies> 
     <add assembly="System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
     <add assembly="System.DirectoryServices.AccountManagement, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
    </assemblies> 
</compilation> 
1

Me encontré con este problema en Visual Studio 2015 con un proyecto MVC que estaba destinado a .NET Framework 4.5.2. Cambiar el marco de destino a .NET 4.5 resolvió el problema.

1

La manera más fácil que funcionó para mí fue hacer clic derecho en References => Add Reference, y seleccionar System.DirectoryServices (y los subconjuntos necesarios).

0

Funcionará si se agrega el ensamblado "System.DirectoryServices.AccountManagement" en las referencias. Agregar System.DirectoryServices no funcionará.

5

1 - Haga clic en el botón izquierdo del ratón "Refrences"
2 - Haga clic en "Añadir Refrence ..."
3 - Haga clic en "Examinar"
4 - Encuentra sigue archivos en la carpeta:

"C: \ archivos de programa \ Referencia Asambleas \ Microsoft \ Framework.NETFramework \ v4.6.1"

-System.DirectoryServices.dll
-System.DirectoryServices.AccountManagement.DLL

5 - seleccionarlos
6 - Pulse el botón "OK"

Cuestiones relacionadas