web-dev-qa-db-fra.com

System.DirectoryServices n'est pas reconnu dans l'espace de noms 'System'

J'essaie d'utiliser System.DirectoryServices dans un projet de site Web et j'obtiens cette erreur:

Le type ou le nom d'espace de noms 'DirectoryServices' n'existe pas dans l'espace de noms 'Système' (il manque une référence d'assembly?)

Mon projet a une référence à System.DirectoryServices dans web.config

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

Et j'ai using System.DirectoryServices dans les fichiers où je veux l'utiliser.

Quelqu'un sait-il où chercher le problème?

25
jansokoly

Le serveur Web (IIS ou autre) est-il configuré pour exécuter le dossier en tant qu’application (c’est-à-dire sous forme de cog) et utilise-t-il la version correcte d’ASP.NET? S'il fonctionne en tant que version 1.1, certains de ses éléments pourraient fonctionner - mais il serait impossible de trouver cet assemblage 2.0 dans le GAC 1.1.

6
Marc Gravell
  1. Faites un clic droit sur Références sous votre solution. 
  2. Sélectionnez Ajouter une référence . La référence se trouve dans la liste Assemblys de structure . Sélectionnez System.DirectoryServices et cliquez sur Ajouter.
95
user1947015

Shot in the dark: avez-vous essayé d'ajouter au web.config:

<compilation debug="true">
     <assemblies>
          <add Assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
     </assemblies>
</compilation>
8
Mitch Wheat

Ceci est un très vieux fil, mais juste pour fournir une réponse complète pour la postérité;)

Ce problème se produit s'il manque au projet une référence au .Net Component System.DirectoryServices

Ajouter cette référence de la manière habituelle que vous préférez résoudra le problème.

7
Salman Siddiqui

Je pense que vous devriez installer Directory Services Package.

Install-Package System.DirectoryServices -Version 4.0.0 

Package de services d'annuaire

2
BasmaSH

S'agit-il d'un site Web site projet ou d'un site Web application projet? Dans ce dernier cas, les références sont gérées via le fichier .csproj - c’est-à-dire via le nœud "Références" de l'Explorateur de solutions.

1
Marc Gravell

Sur l'Explorateur de solutions, cliquez avec le bouton droit de la souris sur votre projet, puis dans le menu résultant, cliquez sur Ajouter une référence, puis sous l'onglet .NET, accédez à DirectoryServices.AccountManagement.

1
user2148239

J'ai eu le même problème lorsque j'ai essayé de convertir un site Web en application web . Il semble que le fait de ne pas avoir chargé de charger l'assembly soit lié au contrôle de version . Passez en web.config et ajoutez l'assembly à celui-ci. comme ci-dessous. assurez-vous que la version DLL correspond à la version .NET de votre application.

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

pour obtenir une clé publique, vous devez lancer Developer Command Prompt for VS. Changez pour le cadre lié au répertoire GAC à l’exemple ci-dessus ex C:\Windows\Microsoft.NET\Framework\v4.0.30319 Et appelez 

sn -T System.DirectoryServices.dll
0
Navid Golforoushan