AD LDS замедляется при первом доступе. Почему? - PullRequest
5 голосов
/ 09 января 2012

У меня есть установка экземпляра ADLDS на локальном компьютере (Windows Server 2008 R2 box) для нового приложения, и я выбрал некоторый код .Net для доступа к нему.Это одна из функций, которые я тестирую, поскольку вы можете видеть ее довольно простые вещи.

Dim MyLdapUri As New Uri(searchRoot)

Using MyContext As New PrincipalContext(ContextType.ApplicationDirectory,
                                         MyLdapUri.Authority,
                                         MyLdapUri.LocalPath.Substring(1), ContextOptions.SimpleBind,
                                         strUsername, strPassword)
        Return UserPrincipal.FindByIdentity(MyContext, IdentityType.Name, username)
    End Using

Одна вещь, которую я нахожу повторяющейся, это задержка ~ 18 с при первом вызове этого илилюбая другая функция для доступа к экземпляру из приложения тестового стенда.Последующие вызовы, сделанные к экземпляру AD LDS, имеют порядок 40 мс.Как только вы оставляете экземпляр незапрошенным на несколько минут, вызовы возвращаются к 18 с при первом вызове.

Я не могу найти ничего плохого в журналах событий.Я также попытался подключиться к экземпляру различными способами (простое связывание с пользователем, определенным в экземпляре, как описано выше, с использованием как локальных, так и доменных учетных записей Windows), и всегда происходит дополнительная задержка 18 с при первом попадании.Кто-нибудь может дать мне какие-либо указания на причины этого и / или как я могу диагностировать / исправить это?

1 Ответ

2 голосов
/ 13 января 2012

Это может быть связано с тем, как вы проходите аутентификацию на вашем сервере.

Является ли сервер, на котором вы устанавливаете ADLDS, контроллером домена?

Ваш клиентский компьютер находится в том же домене, что и ваш сервер?

Как ваш клиентский компьютер разрешает DNS-часть вашего URI?

  • В вашем случае вы заменяете LDAP://myserver на LDAP://myserver.ourdomain.local.
...