Тип или имя пространства имен "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>

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

Ответ 1

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

Ответ 2

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

Если вы используете веб-приложение, то в вашем 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>

Ответ 3

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

"C:\Program Files\Reference Сборки \Microsoft\Framework.NETFramework\v4.6.1"

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

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

Ответ 4

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

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

Ответ 5

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

Ответ 6

Легкий способ, который работал у меня, - щелкнуть правой кнопкой мыши ссылку "Ссылки" > "Добавить ссылку" и выбрать "System.DirectoryServices" (и необходимые узлы).

Ответ 7

Похоже, вам нужно добавить ссылку (в свой проект) на System.DirectoryServices. Поскольку вы используете его в том, что похоже на страницу разметки aspx, иногда компилятор позволяет этим летать во время "сборки", но сбой при фактическом выполнении страницы.

Ответ 8

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

Ответ 9

Он будет работать, если в ссылках добавлена ​​сборка "System.DirectoryServices.AccountManagement". Добавление System.DirectoryServices не будет работать.