Wir haben eine .NET 4.0 -WinForms -App, die seit über 8 Jahren in mehreren Organisationen gut läuft, aber jetzt haben wir in den letzten 6 Monaten einige Benutzer (von verschiedenen Organisationen) über diesen Fehler gemeldet. Dies ist der Code: < /p>
using (DirectorySearcher searcher = new DirectorySearcher(root))
{
searcher.PageSize = 1000;
searcher.PropertiesToLoad.AddRange(new string[] { "whenCreated", "whenChanged", "cn", "description", "distinguishedName", "objectSid", "proxyAddresses", "msExchCoManagedByLink", "managedBy" });
searcher.Filter = ldapFilter;
Log.WriteDebugEntry("Starting LDAP query");
using (SearchResultCollection results = searcher.FindAll())
{
Log.WriteDebugEntry("LDAP query found " + results.Count);
foreach (SearchResult result in results)
...
< /code>
und es löst den Fehler aus: < /p>
Das Element wurde bereits hinzugefügt. Schlüssel im Wörterbuch: 'ObjectSID' Schlüssel ist
hinzugefügt: 'ObjectSID' < /p>
< /blockquote>
Ich kann den Fehler auf keinem unserer Testgeräte reproduzieren, aber einige der Personen, die auf dem Problem des Problems über den Problem der Debug -Protokolldateien starten. Datei.
Wenn Sie den Quellcode für DirectorySearcher betrachten. /> Intern werden die Win32 -IdirectorySearch verwendet und scheint auf GetNextColumnName angewiesen zu sein, um diese Liste der Eigenschaften zu erhalten, die es zum Wörterbuch hinzufügen, aber ich habe keine Ahnung, wie dies jemals mehrfach in derselben Spalte verfügen kann. Ich fand heraus, dass , selbst wenn Sie eine Eigenschaft mehrmals in die Propertiestoload -Liste hinzufügen, dies nicht diesen Fehler verursacht.
DirectorySearcher.FindAll löst Fehler "Element wurde bereits hinzugefügt. Schlüssel in Dictionary: 'ObjectSID'" " ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post