Widzę opóźnienie początkowe wynoszące 2-5 sekund pomiędzy wykonaniem polecenia FindSync DirectorySearcher() a pierwszym pakietem sieciowym, który widzę, wychodzącym na serwer LDAP. Po początkowym wykonaniu kolejne egzekucje są natychmiast wykonywane przez około 45 sekund. Po tym okresie szybkich egzekucji kolejne wykonanie będzie opóźnione i ponownie wszystkie kolejne egzekucje zakończą się natychmiast. Wygląda na to, że jest coś w rodzaju buforowania, ale nie udało mi się znaleźć żadnych zasobów potwierdzających to lub opisujących, co powoduje początkowe opóźnienie.Opóźnienie z instalacją DirectorySearcher FindOne() przy pierwszym uruchomieniu
Zauważyliśmy to na serwerze Windows 2008 klienta, a następnie odtworzono na naszych własnych opakowaniach Windows 2008 i Windows 7.
Oto, jak wygląda moja prosta aplikacja .NET 4.0 C#. Opóźnienie występuje między komunikatami "Rozpoczęty" i "Zakończony".
Każdy pomysł, dlaczego to opóźnienie występuje w początkowym wykonaniu FindOne()? Każda pomoc jest doceniana!
using System;
using System.Collections.Generic;
using System.Text;
using System.DirectoryServices;
namespace LdapTest
{
class Program
{
static void Main(string[] args)
{
string[] fetchAttributes;
fetchAttributes = new string[] { "{string[0]}" };
using (DirectoryEntry searchRoot = new DirectoryEntry("LDAP://localserver/ou=lab,dc=ourdomain,dc=com", "cn=binduser,ou=Services,dc=ourdomain,dc=com", "Password", AuthenticationTypes.ReadonlyServer))
{
using (DirectorySearcher searcher = new DirectorySearcher(searchRoot, "(sAMAccountName=UserName)", fetchAttributes, SearchScope.Subtree))
{
Console.WriteLine("Started");
SearchResult result = searcher.FindOne();
Console.WriteLine("Finished");
}
}
}
}
http://stackoverflow.com/questions/1846436/system-directoryservices-is-slow – orange
Matka Boga !! to było pytanie, na które szukałem rozwiązania od tygodni !! dziękuję –