2012-01-09 6 views
5

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

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 

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

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

ответ

1

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

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

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

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

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

В эйфории, выяснив это, я забыл обновить его в течение нескольких месяцев! Проблема, по-видимому, является некоторой причудой, когда имя хоста в используемом uri должно быть полным LDAP: //myserver.ourdomain.local, а не только LDAP: // myserver. Нечетный, и особенно, поскольку все находится в одной и той же области, но, похоже, работает как орех после этого. У нас также была подобная вещь, которая подходит для использования uris в вызовах WCF. – bigfatron

+0

У меня были такие же точные проблемы, которые возникали каждую минуту. Я искал часы, пока не нашел ваш пост. Спасибо большое !!!!!!! – Vincent

+0

Таким образом, вы можете щелкнуть вопрос как полезный, даже если вы не нажмете на него ответ как полезный. – JPBlanc

Смежные вопросы