首页 文章

Symfony2 PHP 5.4.4无法更改活动会话的ID

提问于
浏览
1

目前,我们在Symfony2中安装我们的Web应用程序,我们发现阻塞问题 .

  • linux Debian Wheezy

  • PHP 5.4.4

  • Symfony版本2.1.10-DEV - app / dev / debug

异常的致命错误:

vendor / symfony / symfony / src / Symfony / Component / HttpFoundation / Session / Storage / Proxy / AbstractProxy.php throw new \ LogicException('无法更改活动会话的ID');

堆栈跟踪 :

在第484行的kernel.root_dir / cache / dev / classes.php中 - 公共函数setId($ id){if($ this-> isActive()){throw new \ LogicException('无法更改活动会话的ID “); } session_id($ id);在第100行的kernel.root_dir / cache / dev / classes.php中的AbstractProxy - > setId('09g5hbsvg1apk8d32k52l19rr5') - 在kernel.root_dir / cache / dev / classes.php中的NativeSessionStorage - > setId('09g5hbsvg1apk8d32k52l19rr5') 780 - 在会话 - > setId('09g5hbsvg1apk8d32k52l19rr5')/home/wwwmain/www/v5/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/EventListener/TestSessionListener.php第54行 - 在TestSessionListener - > onKernelRequest(object (GetResponseEvent))在/ home / wwwmain / www_v5 / vendor / symfony / symfony / src / Symfony / Component / HttpKernel / Debug / ContainerAwareTraceableEventDispatcher中的call_user_func(array(object(TestSessionListener),'onKernelRequest'),object(GetResponseEvent)) . 第139行的php - 在ContainerAwareTraceableEventDispatcher - > doDispatch(array(object(对象(ProfilerListener),'onKernelRequest'),数组(对象(TestSessionListener),'onKernelRequest'),数组(对象(SessionListener),'onKernelRequest'),数组(对象(RouterListener),'onKernelRequest'),arr ay(对象(LocaleListener),'onKernelRequest'),数组(对象(防火墙),'onKernelRequest'),数组(对象(RequestListener),'onKernelRequest'),数组(对象(TwigExtension2),'onKernelRequest'),数组(在第4781行的kernel.root_dir / cache / dev / classes.php中的对象(RequestListener),'onKernelRequest')),'kernel.request',对象(GetResponseEvent) - 在EventDispatcher - > dispatch('kernel.request',在第4999行的kernel.root_dir / cache / dev / classes.php中的对象(GetResponseEvent) - 在/ home / wwwmain / www_v5 / vendor / symfony /中的ContainerAwareEventDispatcher - > dispatch('kernel.request',object(GetResponseEvent))第78行的symfony / src / Symfony / Component / HttpKernel / Debug / ContainerAwareTraceableEventDispatcher.php - 在第1412行的kernel.root_dir / bootstrap.php.cache中的ContainerAwareTraceableEventDispatcher - > dispatch('kernel.request',object(GetResponseEvent)) - 在HttpKernel - > handleRaw(object(Request),'1')在kernel.root_dir / bootstrap.php.cache第1392行 - 在HttpKernel - > handle(object(Req)在kernel.root_dir / bootstrap.php.cache中的第1568行的kernel.root_dir / bootstrap.php.cache中 - 在HttpKernel - > handle(object(Request),'1',true)中的uest),'1',true)在第619行 - 在Kernel - >句柄(对象(请求))/home/wwwmain/www_v5/web/app_dev.php第25行 -

日志:

DEBUG - 监听器“Symfony \ Component \ HttpKernel \ EventListener \ ProfilerListener :: onKernelRequest”的通知事件“kernel.request” . DEBUG - 监听器“Symfony \ Bundle \ FrameworkBundle \ EventListener \ TestSessionListener :: onKernelRequest”的通知事件“kernel.request” . DEBUG - 监听器“Symfony \ Component \ HttpKernel \ EventListener \ ProfilerListener :: onKernelException”的通知事件“kernel.exception” . DEBUG - 监听器“Symfony \ Component \ HttpKernel \ EventListener \ ExceptionListener :: onKernelException”的通知事件“kernel.exception” . CRITICAL - LogicException:无法在/home/wwwmain/www_v5/app/cache/dev/classes.php第484行更改活动会话的ID(未捕获的异常)DEBUG - 通知事件“kernel.request”到侦听器“Symfony \ Component \ HttpKernel \事件监听\ ProfilerListener :: onKernelRequest” . DEBUG - 监听器“Symfony \ Bundle \ FrameworkBundle \ EventListener \ TestSessionListener :: onKernelRequest”的通知事件“kernel.request” . DEBUG - 监听器“Symfony \ Bundle \ FrameworkBundle \ EventListener \ SessionListener :: onKernelRequest”的通知事件“kernel.request” . DEBUG - 监听器“Symfony \ Component \ HttpKernel \ EventListener \ RouterListener :: onKernelRequest”的通知事件“kernel.request” . DEBUG - 监听器“Symfony \ Component \ HttpKernel \ EventListener \ LocaleListener :: onKernelRequest”的通知事件“kernel.request” . DEBUG - 监听器“Symfony \ Component \ Security \ Http \ Firewall :: onKernelRequest”的通知事件“kernel.request” . DEBUG - 监听器“Eyrolles \ CompteBundle \ Service \ RequestListener :: onKernelRequest”的通知事件“kernel.request” . DEBUG - 监听器“Eyrolles \ EcommerceBundle \ Twig \ Extension \ TwigExtension2 :: onKernelRequest”的通知事件“kernel.request” . DEBUG - 监听器“Symfony \ Bundle \ AsseticBundle \ EventListener \ RequestListener :: onKernelRequest”的通知事件“kernel.request” . DEBUG - 监听器“Symfony \ Bundle \ FrameworkBundle \ DataCollector \ RouterDataCollector :: onKernelController”的通知事件“kernel.controller” . DEBUG - 通知事件“kernel.controller”到监听器“Sensio \ Bundle \ FrameworkExtraBundle \ EventListener \ ControllerListener :: onKernelController” . DEBUG - 通知事件“kernel.controller”到侦听器“Sensio \ Bundle \ FrameworkExtraBundle \ EventListener \ ParamConverterListener :: onKernelController” . DEBUG - 监听器“Sensio \ Bundle \ FrameworkExtraBundle \ EventListener \ TemplateListener :: onKernelController”的通知事件“kernel.controller” . DEBUG - 通知事件“kernel.controller”到侦听器“Symfony \ Component \ HttpKernel \ DataCollector \ RequestDataCollector :: onKernelController” .

任何想法,想法?

1 回答

  • 0

    看起来你正在运行phpunit测试?如果是这样,那么如果找到具有会话名称的Cookie,则calss TestSessionListener会调用Session :: setId() .

    我也遇到过这个问题 . 看起来唯一的方法是扩展此类并覆盖“test.session.listener.class”参数 .

相关问题