System.DirectoryServices не распознается в пространстве имен «Система»

Я пытаюсь использовать System.DirectoryServices в проекте веб-сайта и получаю эту ошибку:

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

В моем проекте есть ссылка на System.DirectoryServices в web.config:

<add assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>  

И у меня есть using System.DirectoryServices в файлах, где я хочу его использовать.

Кто-нибудь знает, где искать проблему?


person jansokoly    schedule 05.11.2008    source источник


Ответы (9)


Настроен ли веб-сервер (IIS или что-то еще) для запуска папки в качестве приложения (т. е. отображается как шестеренка) и использует ли он правильную версию ASP.NET? Если он работает как 1.1, некоторые его части могут работать, но он не сможет найти эту сборку 2.0 в 1.1 GAC.

person Marc Gravell    schedule 05.11.2008

  1. Щелкните правой кнопкой мыши ссылку «Ссылки» под вашим решением.
  2. Выберите Добавить ссылку. Справку можно найти в списке сборок фреймворка. Выберите System.DirectoryServices и нажмите Добавить.
person user1947015    schedule 03.01.2013
comment
У меня есть это в ссылках, и он все еще дает мне ту же ошибку, что и выше. - person vapcguy; 07.11.2014
comment
@vapcguy Старый комментарий, но вам, вероятно, нужно также добавить ссылку System.DirectoryServices.AccountManagement. - person TylerH; 01.02.2018
comment
почему я не могу найти System.DirectoryServices в диспетчере ссылок? - person Lion Hunter; 23.09.2020

Выстрел в темноте: вы пытались добавить в web.config:

<compilation debug="true">
     <assemblies>
          <add assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
     </assemblies>
</compilation>
person Mitch Wheat    schedule 05.11.2008
comment
как насчет сборок, от которых зависит System.DirectoryServices? - person Mitch Wheat; 05.11.2008
comment
PublicKeyToken, возможно, должен быть в нижнем регистре, я думаю, что он может быть чувствительным к регистру - у меня не было этой строки, и я просто добавил ее с помощью копирования/вставки PublicKeyToken из свойств моей DLL в C: \Windows\Assembly (также известный как GAC), и вот что решило это для меня. - person vapcguy; 07.11.2014
comment
Даже после добавления необходимых ссылок при построении решения оно было успешно построено, и когда я запустил проект, я получил сообщение об ошибке CS0234: имя типа или пространства имен «DirectoryServices» не существует в пространстве имен «Система» ( вам не хватает ссылки на сборку?) я не понял, почему я снова получил ошибку после успешной сборки - person hud; 16.03.2017

Это очень старая тема, но только для того, чтобы дать полный ответ для потомков;)

Эта проблема возникает, если в проекте отсутствует ссылка на компонент .Net System.DirectoryServices.

Добавление этой ссылки обычным способом, который вы предпочитаете, решит проблему.

person Salman Siddiqui    schedule 08.02.2012
comment
Это был проект веб-сайта, и у меня была ссылка на сборку в web.config, как вы можете видеть в вопросе. - person jansokoly; 09.02.2012
comment
Я столкнулся с той же проблемой, и у меня тоже есть это в ссылках. - person vapcguy; 07.11.2014

Я думаю, вам следует установить пакет служб каталогов.

Install-Package System.DirectoryServices -Version 4.0.0 

Пакет служб каталогов

person Basma Elshoky    schedule 12.09.2017

Это проект веб-сайта или проект веб-приложения? В последнем случае ссылки обрабатываются через .csproj, то есть через узел «Ссылки» в обозревателе решений.

person Marc Gravell    schedule 05.11.2008

В обозревателе решений щелкните правой кнопкой мыши свой проект, затем в появившемся меню нажмите «Добавить ссылку», затем на вкладке .NET перейдите к DirectoryServices.AccountManagement.

person user2148239    schedule 16.06.2013

Эти проблемы возникают, когда вы работаете со старой версией .net и пытаетесь собрать последнюю версию IDE.

Это зависит от того, какую версию IDE вы используете, а также от текущей версии кода.

Проверьте веб-конфигурацию,

В моем случае я использовал последнюю версию, т.е. 4.7 и сборку directoryService по-прежнему относятся к C # 4.0.

Добавьте ниже, если вы используете последнюю версию id, т.е. 4.7

  <system.web>
  <location>

<compilation debug="false" numRecompilesBeforeAppRestart="100" targetFramework="4.7">
        <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>
</system.web>
  </location>
person Pratheek S    schedule 05.03.2019

У меня была такая же проблема, когда я пытался преобразовать веб-сайт в веб-приложение. Похоже, что сбой при загрузке сборки должен быть связан с управлением версиями. переключитесь на web.config и добавьте к нему сборку, как показано ниже. убедитесь, что версия DLL соответствует целевой версии вашего приложения .NET.

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      </assemblies>
    </compilation>
  </system.web>
</configuration>

для получения открытого ключа нужно запустить Developer Command Prompt for VS. Измените структуру, связанную с каталогом GAC, на приведенный выше ex C:\Windows\Microsoft.NET\Framework\v4.0.30319 и вызовите

sn -T System.DirectoryServices.dll
person Navid Golforoushan    schedule 08.02.2017