Имя типа или пространства имен «DirectoryServices» не существует в пространстве имен?

CS0234: Имя типа или пространства имен «DirectoryServices» не существует в пространстве имен «Система» (вам не хватает ссылки на сборку?)

Эта страница работала нормально, показывала записи непосредственно из служб без ошибок. но теперь выдает вышеуказанную ошибку.

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

Проект строится успешно, но когда я открываю страницу, выдает ошибку


person Ali    schedule 21.05.2012    source источник
comment
Когда вы открываете страницу, это на той же машине, на которой вы создаете проект?   -  person mservidio    schedule 21.05.2012
comment
Вы добавили ссылку на сборку System.DirectoryServices в свой проект??   -  person marc_s    schedule 21.05.2012
comment
@marc_s: Да, сборка System.DirectoryServices уже добавлена. Я также удаляю это и добавляю снова, но та же ошибка. И еще одна эта ошибка также на другой машине (не говоря о сервере разработки). Эта страница работала нормально последние много дней. добавлено несколько библиотечных проектов в решение, один из них - оконный сервис   -  person Ali    schedule 21.05.2012
comment
@mservidio: Да, я на той же машине, что и проект.   -  person Ali    schedule 21.05.2012
comment
Когда я удаляю приведенный выше код со страницы aspx для целей тестирования и добавляю строку ниже в событие загрузки страницы, это не дает ошибки. System.DirectoryServices.DirectoryEntry directoryEntry = new System.DirectoryServices.DirectoryEntry();   -  person Ali    schedule 21.05.2012
comment
System.DirectoryServices отображается в intellisense на странице cs, но не на странице aspx. Другие классы успешно отображаются в intellisense в aspx, но System.DirectoryServices   -  person Ali    schedule 21.05.2012


Ответы (9)


После добавления ссылки на службы каталогов щелкните правой кнопкой мыши reference и перейдите к properties. Установите "CopyLocal" в значение true.

person Kevin    schedule 07.08.2012
comment
Если вы не видите ссылки на свою папку, найдите в верхней части панели обозревателя решений параметр «показать все файлы». - person Eduardo Hernández; 04.05.2015

Я почти уверен, что я совершенно неправильно «публикую» свое приложение из своего ящика разработки в свой ящик IIS. Однако я нашел это решение: " rel="noreferrer">здесь, и у меня это сработало.

Если вы используете веб-приложение, добавьте в свой файл web.config следующий код.

<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>
person Slogmeister Extraordinaire    schedule 13.12.2013

1 – Щелкните правой кнопкой мыши "Ссылки"
2 – Нажмите "Добавить ссылку..."
3 – Нажмите кнопку "Обзор"
4 – Найдите в папке следующие файлы:

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

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

5 – Выберите их
 6 – Нажмите кнопку "ОК"

person Ali Reza    schedule 03.05.2017
comment
В настоящее время вы можете просто выбрать из списка, вместо того, чтобы просматривать. - person Arik; 30.10.2018
comment
2020 это все еще работает, хотя каталог изменился на: C:\Program Files\Reference Assemblies\Microsoft\Framework\*version* - person rpm192; 03.11.2020

Простой способ, который сработал для меня, заключался в том, чтобы щелкнуть правой кнопкой мыши «Ссылки» => «Добавить ссылку» и выбрать «System.DirectoryServices» (и необходимые подсборки).

person ShamPooSham    schedule 09.06.2016

Я столкнулся с этой проблемой в Visual Studio 2015 с проектом MVC, предназначенным для .NET Framework 4.5.2. Изменение целевой платформы на .NET 4.5 решило проблему.

person DVK    schedule 06.10.2015

Вам нужно добавить директиву импорта на страницу asp.net. Убедитесь, что он полностью квалифицирован. Убедитесь, что у вас есть ссылка на сборку в вашем проекте.

 <%@ Assembly Name="System.DirectoryServices, Version=2.0.0.0,
     Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" %>
person Emmie Lewis-Briggman    schedule 22.05.2012


У меня такая же проблема. Я выполнил поиск DirectoryServices.dll в папке Windows. Поскольку все появившиеся версии имели одинаковый размер, я выбрал одну и скопировал ее в папку bin на своем веб-сайте. Если у вас нет папки bin, просто создайте ее. Как только я это сделал, я смог открыть свою веб-страницу без ошибок.

person Eldritch    schedule 12.11.2013

Будет работать, если в справочники добавить сборку "System.DirectoryServices.AccountManagement". Добавление System.DirectoryServices не сработает.

person Faiyaz    schedule 24.10.2016