无法禁用 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
我正在支持一个带有 API 自定义错误代码的 Flask 的网络应用程序。 API 运行 通过 Apache 和 WSGI 模块,处于守护进程模式。
我在 Apache conf
文件中为 API 添加了一个 WSGIErrorOverride Off
指令(这应该是默认的,但我还是包含了它)。
然而,每当我的 Flask 应用程序 returns 自定义错误代码(当我 运行 使用内置服务器的应用程序时它们起作用),Apache 发送错误 500。我如何防止这种情况发生?
感谢
当这些视图被装饰时(这里相当于 @login_required
),这些装饰器被 Flask-RESTful 包本身调用,当抛出异常时,就会出错。
出于某种原因,当我 运行 内置服务器时,我的应用 return 出现自定义错误,当我 运行 通过 Apache 时,出现错误 500。还不太清楚为什么,我猜 Flask-RESTful 正在做一些不符合 WSGI 的事情。由于其他原因,我正处于放弃它的边缘,所以我接受这个解决方案。
更新:看来问题确实出自Flask-RESTful:https://github.com/flask-restful/flask-restful/issues/372