【问题标题】:FastCGI not compatible with Carp fatalsToBrowser?FastCGI 与 Carp fatalsToBrowser 不兼容?
【发布时间】:2012-12-19 18:43:29
【问题描述】:

我正在使用 FastCGI 开发一个 Perl 脚本(使用 CGI::FastCGI::Carp 'fatalsToBrowser')
当我的脚本出现编译错误时,它会导致浏览器挂起。似乎fatalsToBrowser 不像普通 CGI 那样工作(只需将编译错误发送到浏览器)。我该如何解决这个问题?

【问题讨论】:

    标签: perl fastcgi


    【解决方案1】:

    我无法为您提供解决方法,只能提供解释,FastCGI 的工作方式完全不同。当 CGI 应用程序执行标准描述符并在执行之前提供环境时,在 FastCGI 应用程序中,服务器(应用程序)必须首先接受来自客户端(通常是 Web 服务器)的连接并在接受请求和响应之前交换一些消息/记录可以发送。 CGI::Carp 在 perl 的编译阶段发挥了神奇的作用,并假设在发生语法错误时(编译阶段)标准描述符可用,这对于 CGI::Fast.pm 来说还为时过早。

    我是 FCGI.pm(和 libfcgi)的维护者之一,所以我将与 CGI 维护者一起解决这个问题。

    【讨论】:

    【解决方案2】:

    我是 CGI.pm 的维护者。在这种情况下,我建议避免使用“fatalsToBrowser”。一些 Perl 框架超越了做同样事情的功能。例如,对于 CGI::Application 有CGI::Application::Plugin::DebugScreen。其他框架也有类似的东西。

    在其他情况下,如果流行的 'Carp' 和 'CGI::Carp' 模块最终都导入到相同的名称空间中,它们可能会发生冲突,因为它们都提供具有相同名称的函数,例如 'carp' 和 '发牢骚'。我建议使用 Carp 并避免使用 CGI::Carp。

    【讨论】:

      猜你喜欢
      • 2018-07-04
      • 2020-10-27
      • 1970-01-01
      • 2013-03-14
      • 2016-07-09
      • 2020-10-31
      • 2019-04-30
      • 2012-04-29
      • 2021-10-04
      相关资源
      最近更新 更多