System.DirectoryServices не распознается в пространстве имен 'System' - PullRequest
27 голосов
/ 05 ноября 2008

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

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

Мой проект имеет ссылку на System.DirectoryServices в web.config:

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

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

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

Ответы [ 9 ]

101 голосов
/ 04 января 2013
  1. Щелкните правой кнопкой мыши на References под вашим решением.
  2. Выберите Добавить ссылку. Ссылка может быть найдена в списке рамочных сборок. Выберите System.DirectoryServices и нажмите Добавить.
8 голосов
/ 05 ноября 2008

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

<compilation debug="true">
     <assemblies>
          <add assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
     </assemblies>
</compilation>
7 голосов
/ 08 февраля 2012

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

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

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

6 голосов
/ 05 ноября 2008

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

2 голосов
/ 12 сентября 2017

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

Install-Package System.DirectoryServices -Version 4.0.0 

Пакет услуг каталога

1 голос
/ 16 июня 2013

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

1 голос
/ 05 ноября 2008

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

0 голосов
/ 05 марта 2019

Эти проблемы возникают, когда вы работаете со старой версией .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>
0 голосов
/ 08 февраля 2017

У меня была такая же проблема, когда я пытался конвертировать сайт в веб-приложение. Похоже, что неудача при загрузке сборки должна быть связана с управлением версиями. переключитесь на 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, выше C:\Windows\Microsoft.NET\Framework\v4.0.30319 и позвоните

sn -T System.DirectoryServices.dll
...