无法禁用 WSGIErrorOverride

Can't disable WSGIErrorOverride

我正在支持一个带有 API 自定义错误代码的 Flask 的网络应用程序。 API 运行 通过 Apache 和 WSGI 模块,处于守护进程模式。

我在 Apache conf 文件中为 API 添加了一个 WSGIErrorOverride Off 指令(这应该是默认的,但我还是包含了它)。

然而,每当我的 Flask 应用程序 returns 自定义错误代码(当我 运行 使用内置服务器的应用程序时它们起作用),Apache 发送错误 500。我如何防止这种情况发生?

感谢 and 的评论,我发现问题不是来自 Apache WSGI,而是来自我的 Flask 应用程序。 更准确地说,我使用的是 Flask-RESTful 包,它负责将我的观点 return 值转换为实际响应。

当这些视图被装饰时(这里相当于 @login_required),这些装饰器被 Flask-RESTful 包本身调用,当抛出异常时,就会出错。

出于某种原因,当我 运行 内置服务器时,我的应用 return 出现自定义错误,当我 运行 通过 Apache 时,出现错误 500。还不太清楚为什么,我猜 Flask-RESTful 正在做一些不符合 WSGI 的事情。由于其他原因,我正处于放弃它的边缘,所以我接受这个解决方案。

更新:看来问题确实出自Flask-RESTful:https://github.com/flask-restful/flask-restful/issues/372