我最近越来越多地看到这个错误。我在 Ubuntu 10.10 上使用 Chrome 开发通道浏览器。当我刷新网页时 - dev_appserver 似乎挂起。超时后,如果完成请求。
如果我在应用程序服务器终端窗口中输入 CTRL-C,则在显示此回溯后似乎会“取消粘连”服务器:
Exception happened during processing of request from ('192.168.1.19', 48238)
Traceback (most recent call last):
File "/usr/local/lib/python2.5/SocketServer.py", line 222, in handle_request
self.process_request(request, client_address)
File "/usr/local/lib/python2.5/SocketServer.py", line 241, in process_request
self.finish_request(request, client_address)
File "/usr/local/lib/python2.5/SocketServer.py", line 254, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py", line 3123, in __init__
BaseHTTPServer.BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
File "/usr/local/lib/python2.5/SocketServer.py", line 522, in __init__
self.handle()
File "/usr/local/lib/python2.5/BaseHTTPServer.py", line 316, in handle
self.handle_one_request()
File "/usr/local/lib/python2.5/BaseHTTPServer.py", line 299, in handle_one_request
self.raw_requestline = self.rfile.readline()
File "/usr/local/lib/python2.5/socket.py", line 346, in readline
data = self._sock.recv(self._rbufsize)
KeyboardInterrupt
奇怪的是,当我打开 Firefox 查看它是否仅与 Chrome 相关时,问题就消失了(在 Firefox 和 Chrome 上)。
我将此解释为浏览器通过不完全从响应中提取所有字节来保持先前的请求打开。由于 dev_server 是单线程的,
在旧请求超时之前,它将不会处理任何进一步的请求。
这里有人有任何其他见解吗?发生这种情况时非常烦人,因为我必须杀死并重新启动 app_devserver 才能继续。