目前,我们在Symfony2中安装了我们的Web应用程序,我们发现阻塞问题。
异常的致命错误:
供应商/ symfony的/ symfony的/ SRC / Symfony的/组件/ HttpFoundation /会话/存储/代理/ AbstractProxy.php 抛出\ \ LogicException('无法更改活动的ID 会话&#39);
堆栈追踪:
在kernel.root_dir / cache / dev / classes.php第484行 - + 公共函数setId($ id) { if($ this-> isActive()){ 抛出new \ LogicException('无法更改活动会话的ID'); } SESSION_ID($ ID); 在AbstractProxy - > setId(' 09g5hbsvg1apk8d32k52l19rr5') 在第208行的kernel.root_dir / cache / dev / classes.php中 - + 在NativeSessionStorage - > setId(' 09g5hbsvg1apk8d32k52l19rr5') 在kernel.root_dir / cache / dev / classes.php第780行 - + 在会话 - > setId(' 09g5hbsvg1apk8d32k52l19rr5') 在/home/wwwmain/www_v5/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/EventListener/TestSessionListener.php 在第54行 - + 在TestSessionListener - > onKernelRequest(object(GetResponseEvent)) at call_user_func(array(object(TestSessionListener),' onKernelRequest'),object(GetResponseEvent)) 在/home/wwwmain/www_v5/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Debug/ContainerAwareTraceableEventDispatcher.php 在第139行 - + 在ContainerAwareTraceableEventDispatcher - > doDispatch(array(array(object(ProfilerListener),' onKernelRequest'), array(object(TestSessionListener),' onKernelRequest'), array(object(SessionListener),' onKernelRequest'), array(object(RouterListener),' onKernelRequest'), array(object(LocaleListener),' onKernelRequest'), 数组(对象(防火墙),' onKernelRequest'), array(object(RequestListener),' onKernelRequest'), array(object(TwigExtension2),' onKernelRequest'), array(object(RequestListener),' onKernelRequest')),' kernel.request', 对象(GetResponseEvent)) 在kernel.root_dir / cache / dev / classes.php第4781行 - + 在EventDispatcher - > dispatch(' kernel.request',object(GetResponseEvent)) 在kernel.root_dir / cache / dev / classes.php第4999行 - + 在ContainerAwareEventDispatcher - > dispatch(' kernel.request',object(GetResponseEvent)) 在/home/wwwmain/www_v5/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Debug/ContainerAwareTraceableEventDispatcher.php 在第78行 - + 在ContainerAwareTraceableEventDispatcher - > dispatch(' kernel.request',object(GetResponseEvent)) 在kernel.root_dir / bootstrap.php.cache第1412行 - + 在HttpKernel - > handleRaw(对象(请求),' 1') 在kernel.root_dir / bootstrap.php.cache第1392行 - + 在HttpKernel - >句柄(对象(请求),' 1',true) 在kernel.root_dir / bootstrap.php.cache第1568行 - + 在HttpKernel - >句柄(对象(请求),' 1',true) 在kernel.root_dir / bootstrap.php.cache第619行 - + 在内核 - >句柄(对象(请求)) 在/home/wwwmain/www_v5/web/app_dev.php第25行 - +
日志:
DEBUG - 通知事件" kernel.request"听众 " Symfony的\元器件\ HttpKernel \事件监听\ ProfilerListener :: onKernelRequest&#34 ;. DEBUG - 通知事件" kernel.request"监听器" Symfony \ Bundle \ FrameworkBundle \ EventListener \ TestSessionListener :: onKernelRequest"。 DEBUG - 通知事件" kernel.exception" to listener" Symfony \ Component \ HttpKernel \ EventListener \ ProfilerListener :: onKernelException"。 DEBUG - 通知事件" kernel.exception" to listener" Symfony \ Component \ HttpKernel \ EventListener \ ExceptionListener :: onKernelException"。 CRITICAL - LogicException:无法更改活动会话(未捕获的异常)的ID /home/wwwmain/www_v5/app/cache/dev/classes.php第484行 DEBUG - 通知事件" kernel.request"侦听器" Symfony \ Component \ HttpKernel \ EventListener \ ProfilerListener :: onKernelRequest"。 DEBUG - 通知事件" kernel.request"监听器" Symfony \ Bundle \ FrameworkBundle \ EventListener \ TestSessionListener :: onKernelRequest"。 DEBUG - 通知事件" kernel.request"侦听器" Symfony \ Bundle \ FrameworkBundle \ EventListener \ SessionListener :: onKernelRequest"。 DEBUG - 通知事件" kernel.request" to listener" Symfony \ Component \ HttpKernel \ EventListener \ RouterListener :: onKernelRequest"。 DEBUG - 通知事件" kernel.request"监听器" Symfony \ Component \ HttpKernel \ EventListener \ LocaleListener :: onKernelRequest"。 DEBUG - 通知事件" kernel.request"监听器" Symfony \ Component \ Security \ Http \ Firewall :: onKernelRequest"。 DEBUG - 通知事件" kernel.request"收听者" Eyrolles \ CompteBundle \ Service \ RequestListener :: onKernelRequest"。 DEBUG - 通知事件" kernel.request"听众" Eyrolles \ EcommerceBundle \ Twig \ Extension \ TwigExtension2 :: onKernelRequest"。 DEBUG - 通知事件" kernel.request" to listener" Symfony \ Bundle \ AsseticBundle \ EventListener \ RequestListener :: onKernelRequest"。 DEBUG - 通知事件" kernel.controller"侦听器" Symfony \ Bundle \ FrameworkBundle \ DataCollector \ RouterDataCollector :: onKernelController"。 DEBUG - 通知事件" kernel.controller"监听器" Sensio \ Bundle \ FrameworkExtraBundle \ EventListener \ ControllerListener :: onKernelController"。 DEBUG - 通知事件" kernel.controller"侦听器" Sensio \ Bundle \ FrameworkExtraBundle \ EventListener \ ParamConverterListener :: onKernelController"。 DEBUG - 通知事件" kernel.controller"侦听器" Sensio \ Bundle \ FrameworkExtraBundle \ EventListener \ TemplateListener :: onKernelController"。 DEBUG - 通知事件" kernel.controller" to listener" Symfony \ Component \ HttpKernel \ DataCollector \ RequestDataCollector :: onKernelController"。
任何想法,想法?
答案 0 :(得分:0)
看起来你正在运行phpunit测试?如果是这样,那么如果Calss TestSessionListener找到具有会话名称的Cookie,则会调用Session :: setId()。
我也遇到过这个问题。看起来唯一的方法是扩展此类并覆盖“test.session.listener.class”参数。