2012-05-21 36 views
10

CS0234: il tipo o il namespace name 'DirectoryServices' non esiste nel 'Sistema' namespace (? Vi manca un riferimento all'assembly)Il tipo o il nome dello spazio dei nomi 'DirectoryServices' non esiste nello spazio dei nomi?

Questa pagina è stata lavorando bene, Mostra i record direttamente servizi senza errori. ma ora dà l'errore di cui sopra.

<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> 

progetto costruisce con successo, ma quando apro la pagina di allora si dà errore

+0

Quando si sta aprendo la pagina, è presente sulla stessa macchina che si sta costruendo il progetto? – mservidio

+4

Hai aggiunto un riferimento all'assembly 'System.DirectoryServices' al tuo progetto ?? –

+1

@marc_s: Sì L'assembly System.DirectoryServices è già stato aggiunto. Inoltre, rimuovo e aggiungo di nuovo, ma lo stesso errore.e un altro errore anche l'altra macchina (non si parla di server di sviluppo) .questa pagina funzionava correttamente negli ultimi giorni. Ho aggiunto alcuni progetti di libreria in soluzione, uno è il servizio finestra – Ali

risposta

0

Sembra che è necessario aggiungere un riferimento (nel progetto) per System.DirectoryServices. Dal momento che lo stai usando in quella che sembra una pagina di markup di aspx, a volte il compilatore lo lascerà volare durante "build" ma fallirà quando effettivamente eseguirai la pagina.

+0

L'assembly System.DirectoryServices è già stato aggiunto, l'ho rimosso e aggiunto di nuovo ma lo stesso errore – Ali

1

È necessario aggiungere una direttiva di importazione sulla pagina asp.net. Assicurati che sia pienamente qualificato. Assicurati di avere un riferimento all'assembly anche nel tuo progetto.

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

Dopo aver aggiunto il vostro riferimento servizi di directory, fare clic destro sul reference e andare a properties. Impostare "CopyLocal" su true.

+0

Se si verifica per non vedere la ricerca 'riferimenti' della cartella nella parte superiore del pannello "solution explorer" per l'opzione 'mostra tutti i file'. –

0

Ho avuto lo stesso problema. Ho fatto una ricerca per DirectoryServices.dll nella mia cartella di Windows. Dal momento che tutte le versioni disponibili avevano le stesse dimensioni, ne ho preso uno e l'ho copiato nella cartella bin del mio sito web. Se non hai una cartella bin, creala. Una volta fatto ciò, sono stato in grado di aprire la mia pagina Web senza errori.

7

Sono quasi sicuro che sto "pubblicando" la mia applicazione dalla mia casella di sviluppo alla mia casella IIS in modo completamente errato. Tuttavia, ho trovato questa soluzione here, e ha funzionato per me.

Se si utilizza l'applicazione Web, nel proprio web.config aggiungere il seguente codice.

<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

Ho riscontrato questo problema in Visual Studio 2015 con un progetto MVC destinato a .NET Framework 4.5.2. La modifica del framework di destinazione in .NET 4.5 ha risolto il problema.

1

Il modo semplice che ha funzionato per me era fare clic con il pulsante destro del mouse su Riferimenti => Aggiungi riferimento e selezionare System.DirectoryServices (e sottosistemi necessari).

0

Funzionerà se l'assembly "System.DirectoryServices.AccountManagement" viene aggiunto nei riferimenti. L'aggiunta di System.DirectoryServices non funzionerà.

5

1 - Cliccare sul tasto sinistro del mouse "refrences"
2 - Clicca su "Aggiungi refrence ..."
3 - Fai clic su "Sfoglia"
4 - Trova seguire i file nella cartella:

"C: \ Program Files \ Riferimento Assemblies Microsoft \ Framework.NETFramework \ v4.6.1 \"

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

5 - selezionarle
6 - Premere il tasto "OK"

Problemi correlati