0
Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "" at /var/www/<projectId>/src/oro/platform/src/Oro/Bundle/FeatureToggleBundle/EventListener/RequestListener.php line 33

跟踪如下

    {/var/www/<projectId>/src/oro/platform/src/Oro/Bundle/FeatureToggleBundle/EventListener/RequestListener.php:33 {▼
    Oro\Bundle\FeatureToggleBundle\EventListener\RequestListener->onRequest(GetResponseEvent $event) …
    › if ($event->isMasterRequest()) {
    ›     throw new NotFoundHttpException();
    › }
  }
  /var/www/<projectId>/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/Debug/WrappedListener.php:126 {}

并且提供功能的请求在 Dev 中工作得非常好,但在 Prod 中却不行。

我已确保文件已更新,并确保没有任何问题。

检查数据库迁移并确保所有更改都完好无损

该功能在 Dev 上正常工作的事实很奇怪,当我在 500 内部错误上执行 <App_URL>/index_dev.php/customer/request/create 时没有显示任何错误,但实际上加载 RFQ 页面时完美无缺。

有什么建议可以调试此错误或了解可能出了什么问题?

4

1 回答 1

1

根据错误消息和堆栈跟踪,您在 dev 中启用了该功能,但在 prod 环境中禁用了该功能。通常,它是由于缓存而发生的。

  1. 所以第一个建议是手动删除文件缓存,使用rm -rf var/cache/*,如果你使用 Redis,也刷新 redis 数据库。cache:clear 命令并不总是可靠的。

  2. 您说异常仅在 prod 中引发,但错误堆栈跟踪具有包装器,必须仅与debug=trueAppKernel 中的选项一起使用。请确保您没有自定义 index.php 文件以启用调试,因为它不安全,并确保您的 Web 服务器虚拟主机配置为使用 index.php,而不是 index_dev.php。

  3. 例外来自功能切换包。作为最后的手段,您可以查看文档,了解该功能的实现方式,并从跟踪 (src/oro/platform/src/Oro/Bundle/FeatureToggleBundle/EventListener/RequestListener) 中调试侦听器,以查看价值来自于。

于 2020-11-17T07:54:51.213 回答