AD LDS медленно при первом доступе — почему?

У меня есть экземпляр ADLDS, настроенный на локальном компьютере (Windows Server 2008 R2) для нового приложения, и я создал некоторый код .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 секунд при первом попадании всегда происходит. Может ли кто-нибудь дать мне какие-либо указания на то, что вызывает это и / или как я могу его диагностировать / исправить?


person bigfatron    schedule 09.01.2012    source источник


Ответы (1)


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

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

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

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

  • В вашем случае вы заменяете LDAP://myserver на LDAP://myserver.ourdomain.local.
person JPBlanc    schedule 13.01.2012
comment
В эйфории от выяснения этого я забыл обновить его на несколько месяцев! Проблема, по-видимому, заключается в некоторой причуде, когда имя хоста в используемом uri должно быть полным LDAP://myserver.ourdomain.local, а не просто LDAP://myserver. Странно, тем более, что все находится в одном домене, но после этого, кажется, работает как орешек. У нас также была аналогичная вещь для uris, используемого в вызовах WCF. - person bigfatron; 09.08.2012
comment
У меня были точно такие же проблемы, возникающие каждую минуту. Я искал несколько часов, пока не нашел ваш пост. Спасибо большое!!!!!!! - person Vincent; 21.01.2015
comment
Таким образом, вы можете щелкнуть вопрос как полезный, даже если вы не выбрали ответ как полезный. - person JPBlanc; 21.01.2015