搜索LDAP时出错

时间:2015-02-27 10:06:29

标签: python unix ldap

我正在运行一个python脚本来连接并绑定到LDAP,但在搜索LDAP时会抛出此错误。 使用此功能:search_s()

但错误: {'info': '00002024: LdapErr: DSID-0C060595, comment: No other operations may be performed on the connection while a bind is outstanding., data 0, v1772', 'desc': 'Server is busy'}

请帮忙。我该怎么做才能解决这个问题?

先谢谢。

1 个答案:

答案 0 :(得分:1)

好的,您将绑定发送到LDAP,然后发送搜索。问题是你在服务器处理第一个请求之前发送了第二个请求,然后它变得烦恼并使你陷入困境,因此我很忙碌了#34;响应。

解决方案是告诉Python ldap客户端在继续之前等待结果,因此:

l = ldap.initialize('ldap://fnord.com')
l.bind('thisismyname', 'andthisismyquest')
l.search_s(scope, ldap.SCOPE_SUBTREE, query, attributes)

成为这个:

l = ldap.initialize('ldap://fnord.com')
l.bind('thisismyname', 'andthisismyquest')
l.result()                                 # THIS IS THE LINE THAT MAKES IT WORK
l.search_s(scope, ldap.SCOPE_SUBTREE, query, attributes)

当我对我的脚本进行此更改时,它每次都开始可靠地工作。

更新:

我找到了正确的方法:

l = ldap.initialize('ldap://fnord.com')
l.bind_s('thisismyname', 'andthisismyquest') # S IS FOR SYNCHRONOUS, IS GOOD ENOUGH FOR ME
l.search_s(scope, ldap.SCOPE_SUBTREE, query, attributes)