当前位置: 首页 > 面试题库 >

Django在调试模式下损坏的管道

龙繁
2023-03-14
问题内容

我在Nginx后面的远程服务器上有django 1.3。

如果我用apache + mod_wsgi运行django,我可以在apache日志文件中观察错误。可以,但我想在控制台中使用。

如果运行django自己的开发服务器,则仅当DEBUG = False时,控制台中的stacktrace才会出现错误。在调试模式下,控制台输出

Exception happened during processing of request from (..., ...)
Traceback (most recent call last):
  File "/usr/local/python/lib/python2.7/SocketServer.py", line 284, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/usr/local/python/lib/python2.7/SocketServer.py", line 310, in process_request
    self.finish_request(request, client_address)
  File "/usr/local/python/lib/python2.7/SocketServer.py", line 323, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/local/python/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 570, in __init__
    BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
  File "/usr/local/python/lib/python2.7/SocketServer.py", line 641, in __init__
    self.finish()
  File "/usr/local/python/lib/python2.7/SocketServer.py", line 694, in finish
    self.wfile.flush()
  File "/usr/local/python/lib/python2.7/socket.py", line 301, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe

我想弄清楚为什么?django为什么只输出未命名的Exception?为什么它取决于DEBUG变量

当我无权访问请求对象时,此错误通常发生在外部视图中。因此,我无法在中间件或日志记录处理程序中捕获它。

更新。我注意到如果我直接请求django服务器,我永远也不会遇到断管问题。那么Nginx代理django可能会出现问题吗?


问题答案:

proxy_intercept_errors off;我需要Nginx指令(默认情况下禁用)



 类似资料:
  • 问题内容: 我的箭头键在家里不能在vi的插入模式下工作,它们只能插入一个换行符和一个大写字母,例如“ A”。有办法解决吗? 问题答案: 我假设您正在使用vim,因为它被标记为Linux。尝试: (您可能希望通过向其添加此命令来配置.vimrc。如果主目录中尚不存在新的.vimrc文件,请创建一个新的.vimrc文件,运行以检查主目录路径。)

  • 问题内容: 我有一个非常简单的Python 3脚本: 但它总是说: 我在网上看到了解决此问题的所有复杂方法,但是我直接复制了此代码,因此我认为代码有问题,而不是Python的SIGPIPE。 我正在重定向输出,因此,如果上面的脚本被命名为“ open.py”,那么我要运行的命令将是: 问题答案: 我没有重现这个问题,但是也许这种方法可以解决这个问题:(逐行写入而不是使用) 你能抓住破损的管道吗?这

  • 我试图使用ITextSharp旋转PDF文档中的各个页面。它看起来很有效,因为当我在土坯上打开时,一切看起来都很好。然而,当试图在itextSharp中重新打开时,会抛出各种异常。我可以看出文档出了问题,因为adobe总是问我是否要保存更改时,打开一个与itextSharp操纵的文档,这表明它修复了损坏。 疯狂的是,我甚至不必对文档进行任何操作,只需创建一个新的压模并关闭它。下面是代码,被剥离到仍

  • 问题 如何在调试模式下使用session? 解法 使用web.py自带的webserver提供web服务时,web.py就运行在调试模式下。当然最简单的办法就是禁用调试,只要令web.config.debug = False即可。 import web web.config.debug = False # rest of your code 如果非要用调试模式下使用session,可以用非主流

  • 我试图用django管道编译静态,但无法在开发模式下为静态服务。由于我不是Django开发人员,我可能对Django为静态文件本身提供服务的方式有所误解。这是我的项目结构: 项目(项目本身) css 应用程序。斯蒂尔 媒体 当我使用共享静态时,我已经指定了指令来允许Django dev server和命令查找共享静态: 这是我的: 在我的模板中,我指定了CSS组: 因此,生成这样的HTML: 但返

  • 问题内容: 我正在使用apache commons http客户端使用post方法来调用url来发布参数,并且很少抛出以下错误。 有人可以建议导致此异常的原因以及如何对其进行调试吗? 问题答案: 原因是: 最通常的是,在另一端已经关闭连接时写入连接; 通常,对等方关闭连接而不读取其末端已经挂起的所有数据。 因此,在两种情况下,你的应用程序协议定义或实施都不充分。 还有第三个原因,我在这里不做记录,