Ответ 1
После добавления ссылки на службы каталогов щелкните правой кнопкой мыши по reference
и перейдите к properties
. Установите "CopyLocal"
в значение true.
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>
Проект успешно завершается, но когда я открываю страницу, он дает ошибку
После добавления ссылки на службы каталогов щелкните правой кнопкой мыши по reference
и перейдите к properties
. Установите "CopyLocal"
в значение true.
Я почти уверен, что полностью "неправильно" опубликовал свое приложение из своей коробки разработки в ящик 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>
1 - Нажмите кнопку мыши слева на "Refrences"
2 - Нажмите "Добавить подтверждение..."
3 - Нажмите кнопку "Обзор"
4 - Найдите файлы в папке:
"C:\Program Files\Reference Сборки \Microsoft\Framework.NETFramework\v4.6.1"
-System.DirectoryServices.dll
-System.DirectoryServices.AccountManagement.dll
5 - Выберите их
6 - Нажмите кнопку "ОК"
Вам нужно добавить директиву импорта на странице asp.net. Убедитесь, что он полностью квалифицирован. Убедитесь, что у вас есть ссылка на сборку в вашем проекте.
<%@ Assembly Name="System.DirectoryServices, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" %>
Я столкнулся с этой проблемой в Visual Studio 2015 с проектом MVC, предназначенным для .NET Framework 4.5.2. Изменение целевой структуры для .NET 4.5 разрешило проблему.
Легкий способ, который работал у меня, - щелкнуть правой кнопкой мыши ссылку "Ссылки" > "Добавить ссылку" и выбрать "System.DirectoryServices" (и необходимые узлы).
Похоже, вам нужно добавить ссылку (в свой проект) на System.DirectoryServices
. Поскольку вы используете его в том, что похоже на страницу разметки aspx, иногда компилятор позволяет этим летать во время "сборки", но сбой при фактическом выполнении страницы.
У меня была та же проблема. Я сделал поиск в DirectoryServices.dll в моей папке Windows. Поскольку все версии, которые появились, имели одинаковый размер, я выбрал один и скопировал его в папку bin на моем веб-сайте. Если у вас нет папки с bin, просто создайте ее. Как только я это сделал, я смог открыть свою веб-страницу без ошибок.
Он будет работать, если в ссылках добавлена сборка "System.DirectoryServices.AccountManagement". Добавление System.DirectoryServices не будет работать.