2014-01-28 3 views
2

В настоящее время я пытаюсь использовать LDAP моей школы с веб-сайтом, созданным с помощью Django. Но я встречаю ошибку, с которой я не могу справиться.Broken pipe errno32 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 
---------------------------------------- 

Большое спасибо за вашу помощь!

ответ

1

Это проблема с Django devserver (вы используете свой веб-сайт, используя его, что не рекомендуется вообще для производственных сайтов).

Пожалуйста, смотрите this ticket для получения более подробной информации:

Согласно многим источникам, «Разбитое Pipe» нормальный браузер причуда. Например, браузер читает из сокета, а затем решает, что изображение, которое он читал, по-видимому, не изменилось. Браузер теперь (принудительно) закрывает соединение, потому что ему не нужно больше данных. На другом конце этого сокета (python runningerver) теперь возникает исключение сокета, указывающее программе, что клиент «сломал трубку сокета».

Короткий ответ: игнорировать эту ошибку, так как это известная ошибка и не будет исправлена.

Существует также this SO thread, говорящий об этой проблеме.