我最近越来越多地看到这个错误。我在 Ubuntu 10.10 上使用 Chrome 开发 channel 浏览器。当我刷新网页时 - dev_appserver 似乎挂起。超时后,if 完成请求。
如果我在 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 才能继续。
最佳答案
群里有几篇关于这个的帖子。显然 Chrome 会发送多个请求,然后 SDK 以某种方式阻止了其中一个请求。
我见过几个用户say使用 --disable-preconnect 启动 Chrome 有帮助。
关于google-app-engine - 为什么 dev_appserver.py(App Engine 开发服务器)挂起等待请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4893353/