Правила Форума редакция от 22.06.2020 |
|
|
|
|
|
Опции темы | Опции просмотра | Language |
25.10.2006, 13:23 | #1 |
Неактивный пользователь
Регистрация: 17.06.2005
Сообщений: 15
Репутация: 2
|
Поиск записей в AD
Возникла проблема, нужно обращаться к AD с веб-сервера (Windows 2000 Server) на контроллер домена (Windows 2000 Server). Проблема в том, что это происходит очень медленно (медленное подключение, медленная авторизация и медленный поиск), если делать тоже самое с локальной машины (Windows XP), то всё просто летает. Суть проблемы: как оптимизировать подключение к AD, чтобы поиск происходил также быстро, как и на WinXP. Может кому приходилось решать такую проблему? Может есть какие идеи на эту тему?:7:
|
Реклама: | вентиляторы канальные прямоугольные цены | gayafores | гамак на подставке | стол круглый раздвижной на кухню | круглая деревянная подставка |
25.10.2006, 14:56 | #2 |
Re: Поиск записей в AD
S|lent, так может быть дело в загруженности веб-сервера?...
|
|
25.10.2006, 15:11 | #3 | |||||||||||||||||||||||
Неактивный пользователь
Регистрация: 17.06.2005
Сообщений: 15
Репутация: 2
|
Re: Поиск записей в AD
Вариант, но маловероятно, т.к. к нему происходит примерно 50 подключений в сутки. Это подключения извне. У меня сайт смотрит в локалку, вот именно на нём и вся проблема (там подключений всего 1). |
|||||||||||||||||||||||
25.10.2006, 15:58 | #4 | |||||||||||||||||||||||
Re: Поиск записей в AD
Подключайтесь через SQL Server. Из него же посылайте запросы. Способов связей SQL Server с IIS более чем достаточно. Собственно как ... USE master if exists (select * from sysservers where srvname = N'ADSI') exec sp_dropserver @server = 'ADSI' exec sp_addlinkedserver @server='ADSI', @srvproduct='"LDAP://W7"', @provider='ADsDSOObject', @datasrc='"LDAP://W7"', @location=NILL, -- DBPROP_INIT_LOCATION @provstr='ADsDSOObject;Encrypt Password=False;Integrated Security=SSPI;Mode=Read;Bind Flags=0;ADSI Flag=-2147483648', @catalog=NILL -- DBPROP_INIT_CATALOG GO --exec sp_serveroption 'ADSI','Data Access',TRUE exec sp_serveroption 'ADSI','rpc',TRUE exec sp_serveroption 'ADSI','rpc out',TRUE exec sp_addlinkedsrvlogin @rmtsrvname='ADSI', @useself=TRUE /* SELECT * FROM openquery(ADSI, 'SELECT Name, AdsPath, cn, TelephoneNumber, objectCategory, objectSID FROM ''LDAP://W7''') SELECT * FROM openquery(ADSI, 'SELECT Name FROM ''LDAP://W7'' WHERE objectClass = ''*''') SELECT * FROM openquery(ADSI, 'SELECT Name FROM ''LDAP://W7'' WHERE objectClass = ''user''') SELECT * FROM openquery(ADSI, 'SELECT Name FROM ''LDAP://W7'' WHERE objectClass = ''top''') SELECT * FROM openquery(ADSI, 'SELECT Name FROM ''LDAP://W7'' WHERE objectClass = ''domain''') SELECT * FROM openquery(ADSI, 'SELECT Name FROM ''LDAP://W7'' WHERE objectClass = ''domainDNS''') SELECT * FROM openquery(ADSI, 'SELECT Name FROM ''LDAP://W7'' WHERE objectClass = ''container''') SELECT * FROM openquery(ADSI, 'SELECT Name FROM ''LDAP://W7'' WHERE objectClass = ''organizationalUnit''') SELECT * FROM openquery(ADSI, 'SELECT Name FROM ''LDAP://W7'' WHERE objectClass = ''lostAndFound''') SELECT * FROM openquery(ADSI, 'SELECT Name FROM ''LDAP://W7'' WHERE objectClass = ''infrastructureUpdate''') SELECT * FROM openquery(ADSI, 'SELECT Name FROM ''LDAP://W7'' WHERE objectClass = ''msDS-QuotaContainer''') SELECT * FROM openquery(ADSI, 'SELECT Name FROM ''LDAP://W7'' WHERE objectClass = ''fileLinkTracking''') SELECT * FROM openquery(ADSI, 'SELECT Name FROM ''LDAP://W7'' WHERE objectClass = ''msDS-QuotaContainer''') SELECT * FROM openquery(ADSI, 'SELECT Name FROM ''LDAP://W7'' WHERE objectClass = ''rpcContainer''') SELECT * FROM openquery(ADSI, 'SELECT Name FROM ''LDAP://W7'' WHERE objectClass = ''fileLinkTracking''') SELECT * FROM openquery(ADSI, 'SELECT Name FROM ''LDAP://W7'' WHERE objectClass = ''linkTrackVolumeTable''') SELECT * FROM openquery(ADSI, 'SELECT Name FROM ''LDAP://W7'' WHERE objectClass = ''linkTrackObjectMoveTable''') SELECT * FROM openquery(ADSI, 'SELECT Name FROM ''LDAP://W7'' WHERE objectClass = ''leaf''') SELECT * FROM openquery(ADSI, 'SELECT AdsPath, cn, TelephoneNumber, objectCategory, objectSID, Name FROM ''LDAP://W7'' WHERE objectClass = ''*''') WHERE objectSID IS NOT NULL ORDER BY objectSID SELECT * FROM openquery(ADSI, 'SELECT AdsPath, cn, TelephoneNumber, objectCategory, objectSID, Name FROM ''LDAP://W7'' WHERE objectClass = ''domainPolicy''') ORDER BY NAME SELECT * FROM openquery(ADSI, 'SELECT AdsPath, cn, TelephoneNumber, objectCategory, objectSID, Name FROM ''LDAP://W7'' WHERE objectClass = ''classStore''') ORDER BY NAME SELECT * FROM openquery(ADSI, 'SELECT AdsPath, cn, TelephoneNumber, objectCategory, objectSID, Name FROM ''LDAP://W7'' WHERE objectClass = ''groupPolicyContainer''') ORDER BY NAME SELECT * FROM openquery(ADSI, 'SELECT AdsPath, cn, TelephoneNumber, objectCategory, objectSID, Name FROM ''LDAP://W7'' WHERE objectClass = ''applicationSettings''') ORDER BY NAME SELECT * FROM openquery(ADSI, 'SELECT AdsPath, cn, TelephoneNumber, objectCategory, objectSID, Name FROM ''LDAP://W7'' WHERE objectClass = ''nTFRSSettings''') ORDER BY NAME --ipsecBase --ipsecPolicy SELECT * FROM openquery(ADSI, 'SELECT Name FROM ''LDAP://W7'' WHERE objectClass = ''user''') SELECT * FROM openquery(ADSI, 'SELECT AdsPath, cn, TelephoneNumber, objectCategory, objectSID, Name FROM ''LDAP://W7'' WHERE objectClass = ''groupPolicyContainer''') ORDER BY NAME */ SELECT * FROM openquery(ADSI, 'SELECT AdsPath, cn, TelephoneNumber, objectCategory, objectSID, Name FROM ''LDAP://W7'' WHERE objectClass = ''*''') ORDER BY NAME
__________________
У шамана три руки Мир вокруг, как темный зал На ладонях золотых Нарисованы глаза (C) Пикник. |
||||||||||||||||||||||||
25.10.2006, 16:06 | #5 |
Re: Поиск записей в AD
S|lent, все равно не понимаю логики. Проблема либо в нагрузке сети, либо нагрузке (любой не только сетевой) на сервер. При чем здесь настройки?
|
|
25.10.2006, 16:09 | #6 | |||||||||||||||||||||||
Неактивный пользователь
Регистрация: 17.06.2005
Сообщений: 15
Репутация: 2
|
Re: Поиск записей в AD
Прошу прощения что сразу не написал, подключаюсь по протоколу ldap с использованием ldap-функций встроенных в php. Поэтому мне интересно, <b>STTR</b>, насколько это будет быстрее работать, ведь в MSSQL запрос мы всё равно отсылаем по тому же протоколу ldap. Или я в чём-то ошибаюсь?
Добавлено через 11 минут 32 секунды
Согласен, наверно не совсем корректно описал проблему. Если я делаю пинг со своей машины (WinXP), то он проходит с временем <1ms, в то время как тотже самый пинг с сервера (Windows 2000 Server) идёт <10ms. Пробую делать пинг с обычной машины (Windows 2000), пинг <10ms, хотя подсеть таже что и у меня. Я склоняюсь в сторону сетевых тормозов, но объяснить и соответственно исправить этот баг не могу... Последний раз редактировалось S|lent; 25.10.2006 в 16:20.. Причина: Добавлено сообщение |
|||||||||||||||||||||||
26.10.2006, 02:40 | #7 | ||||||||||||||||||||||||||||||||||||||||||||||
Re: Поиск записей в AD
Странно, через ldap хоть и медленее, но запрос должен возвращаться довольно быстро. Нет, не через ldap, а через ADO и COM-интерфейс OLE DB. Конкретнее, через Microsoft OLE DB Provider for Microsoft Active Directory Service. А ADO является надстройкой над интерфейсом OLE DB, для возможности работы через T-SQL, C#, VC, WSH, VB ... Быстрее моего способа, только VC из-за особенностей языка и интерфейсов, при помощи VB или WSH - будет меленнее, чем при работе с VC. Добавлено через 5 минут 10 секунд
А попробуйте в параметрах подключения к ldap-серверу использовать не имя, а IP адрес, может дело в разрешении имен в ДНС? Добавлено через 13 минут 15 секунд Да, еще одно, с задачей с которой Вы бъетесь, давно справился IIS. Накрутить на него Perl и PHP не составит ни какого труда. Не расскажите, ради чего огород? ))
__________________
У шамана три руки Мир вокруг, как темный зал На ладонях золотых Нарисованы глаза (C) Пикник. Последний раз редактировалось STTR; 26.10.2006 в 02:54.. Причина: Добавлено сообщение |
|||||||||||||||||||||||||||||||||||||||||||||||
26.10.2006, 06:20 | #8 |
Постоялец
Пол: Регистрация: 03.09.2005
Адрес: отдаленный район ссыльных каторжников
Сообщений: 243
Репутация: 43
|
Re: Поиск записей в AD
Посмотри как у тебя на W2000 - идет tracert до вин сервера и как идет путь на wXP.- Скорее всего проблема в маршруте. А однажды - эта беда была у провайдера моего - мне поменяли логин и и все стало ОК. А на мой вопрос как связаны тормоза сети и логин : он уклончиво промолчали
|
26.10.2006, 16:13 | #9 | |||||||||||||||||||
Re: Поиск записей в AD
S|lent, может здесь собака зарыта
|
||||||||||||||||||||
27.10.2006, 14:19 | #10 | ||||||||||||||||||||||||||||||||||||||||||||||
Неактивный пользователь
Регистрация: 17.06.2005
Сообщений: 15
Репутация: 2
|
Re: Поиск записей в AD
Очень может быть, что так оно и есть. Только как решить эту проблему непонятно, т.к. перенос сайта на WinXp начальством не планируется. <b>fylhtqrf</b>, tracert'ом уже всё проверил неоднократно, пробовал менять даже коктроллеы домена, результат один и тотже. С маршрутами всё впорядке. Вся проблема скорее всего в обработке груповых политик, как написал <b>arkasha</b>.
<b>STTR</b>,так у меня и сделано, к IIS прикручен PHP, используется встроенная проверка подлинности Windows. Это всё нужно так сказать для сквозной авторизации доменных пользователей и раздачи им прав на сайте. Приведу пару цифр: при работе скрипта на веб-сервере Windows 2000 Server поиск в AD - 22.9 сек; при работе скрипта на веб-сервере Windows XP поиск в AD - 0.02 сек Скрипты абсолютно одинаковые, настройки веб-серверов тоже, т.е. сам сайт разрабатывался на локальной машине Windows XP, а потом перемещался на Windows 2000 Server. По поводу изменения имени сервера на его ip - результат такой же. Последний раз редактировалось S|lent; 27.10.2006 в 15:31.. |
||||||||||||||||||||||||||||||||||||||||||||||
27.10.2006, 14:31 | #11 | |||||||||||||||||||||||
Re: Поиск записей в AD
Смотрим http://ru-board.com/new/article.php?sid=174#chap4 |
||||||||||||||||||||||||
03.11.2006, 13:27 | #12 |
Banned
Регистрация: 03.11.2006
Сообщений: 3
Репутация: 0
|
Re: Поиск записей в AD
в support tools-ах сервера есть утилы addiag и dcdiag, я бы на твоем месте оттестил этими утилами записи AD с особенным пристрастием адресацию к GC, ну и конечно настройки для внутреннего и внешнего интерфейсов на IIS.
|
Опции темы | |
Опции просмотра | |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выборка записей из таблицы dbf | Diver_wing | Базы данных | 8 | 04.05.2013 23:59 |
Добавление записей в TAdoQuery в RunTime | Litvinenko_A | Delphi | 4 | 27.05.2009 17:56 |
Персональный поиск Яндекса - полнотекстовый поиск по файлам на локальном компьютере | S_A_S_H_A | Freeware софт | 0 | 10.07.2008 05:11 |
Автозагрузка-удаление записей | Владитмир | Microsoft Windows | 3 | 17.01.2006 01:33 |
|
|