我目前正在尝试将我学校的 LDAP 与使用 Django 构建的网站一起使用。但是我遇到了一个我无法解决的错误。
当我使用我学校的网络时,LDAP 登录在本地主机上运行完美。但是当我使用校外网络时,登录不起作用,即使是我第一次运行 manage.py 时创建的管理员登录也不起作用。
每次我尝试登录时,终端显示以下错误:
Traceback (most recent call last):
File "/Users/Me/anaconda/lib/python2.7/wsgiref/handlers.py", line 86, in run
self.finish_response()
File "/Users/Me/anaconda/lib/python2.7/wsgiref/handlers.py", line 128, in finish_response
self.write(data)
File "/Users/Me/anaconda/lib/python2.7/wsgiref/handlers.py", line 212, in write
self.send_headers()
File "/Users/Me/anaconda/lib/python2.7/wsgiref/handlers.py", line 270, in send_headers
self.send_preamble()
File "/Users/Me/anaconda/lib/python2.7/wsgiref/handlers.py", line 194, in send_preamble
'Date: %s\r\n' % format_date_time(time.time())
File "/Users/Me/anaconda/lib/python2.7/socket.py", line 324, in write
self.flush()
File "/Users/Me/anaconda/lib/python2.7/socket.py", line 303, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
[28/Jan/2014 11:18:43] "POST /admin/ HTTP/1.1" 500 59
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 60538)
Traceback (most recent call last):
File "/Users/Me/anaconda/lib/python2.7/SocketServer.py", line 593, in process_request_thread
self.finish_request(request, client_address)
File "/Users/Me/anaconda/lib/python2.7/SocketServer.py", line 334, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/Users/Me/anaconda/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 150, in __init__
super(WSGIRequestHandler, self).__init__(*args, **kwargs)
File "/Users/Me/anaconda/lib/python2.7/SocketServer.py", line 651, in __init__
self.finish()
File "/Users/Me/anaconda/lib/python2.7/SocketServer.py", line 710, in finish
self.wfile.close()
File "/Users/Me/anaconda/lib/python2.7/socket.py", line 279, in close
self.flush()
File "/Users/Me/anaconda/lib/python2.7/socket.py", line 303, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
非常感谢您的帮助!
请您参考如下方法:
这是 Django devserver 的问题(您正在使用它运行您的网站,完全不建议将其用于生产网站)。
请参阅this ticket了解更多详情:
According to many sources the 'Broken Pipe' is a normal browser quirk. For example, the browser reads from the socket and then decides that the image it's been reading apparently didn't change. The browser now this (forcefully) closes the connection because it does not need more data. The other end of this socket (the python runserver) now raises a socket exception telling the program that the client 'Broke the socket pipe'.
简短的回答是:忽略这个错误,因为它是一个已知错误,不会被修复。
还有this SO thread谈论这个问题。
