Тайм-аут LdapConnection против тайм-аута SearchRequest
Какой из них имеет приоритет?
Допустим, вы создали новое LdapConnection и установили для его свойства Timeout значение 30 секунд.
LdapConnection ldapConn = new LdapConnection(hostName + ":" + port)
{
Timeout = TimeSpan.FromSeconds(30)
}
Позже, когда вы отправляете SearchRequest, вы также снова указываете время ожидания в 30 секунд следующим образом:
var response = (SearchResponse)connection.SendRequest(req, TimeSpan.FromSeconds(30));
Очевидно, что соединение живет дольше, чем запрос, поэтому я ожидаю, что второй тайм-аут будет связан с запросом, а первый - с соединением. Не имеет никакого смысла, когда я думаю об этом, поэтому я прошу вас экспертов. Поскольку соединение было создано с тайм-аутом, имеет ли он значение времени ожидания?
1 ответ
Время соединения истекает через 30 секунд после последнего использования. Время поиска истекает через 30 секунд после отправки. Если вы отправите запрос на поиск через 31 секунду после последнего использования соединения, вы получите тайм-аут соединения. Если вы отправите его раньше, через 30 секунд он истечет как тайм-аут поиска, так как соединение все еще используется для поиска.