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?
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.
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>
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.
Je pense que vous devriez installer Directory Services Package.
Install-Package System.DirectoryServices -Version 4.0.0
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.
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.
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