2013-08-29 19 views
0

我有一个服务器上运行的并发两个应用程序,用冷箱为每个应用程序的根文件夹的冷箱外根在同一文件夹级别导致相同名称的拦截碰撞两个应用程序

他们都调用一个名为身份验证的拦截器。 CFC但APP1的authenticate.cfc有不同的代码比APP 2的authenticate.cfc

APP1做工精细,APP2作为显然是使用APP1的authenticate.cfc拦截

我重新启动服务器,尝试APP 2,它工作正常给出了一个错误,然后转到app1,它会给出一个错误,因为它试图将app2命名为i nterceptor

我试过no_inheritance,但它似乎没有工作......为什么会发生这种情况?

根据错误报告时,总是CF_TEMPLATEPROXY开始了罚款,使用正确的路径d:\ APPS \ APP1 \的Application.cfc正确

然后传播到coldbox.system.coldbox的UDF和Templateproxy为interceptorstate.cfc

随后拨通了最后一个动作是CF_CFPage,现在参照的是错误的目录d:\ APPS \ APP 2 \拦截器\ authenticate.cfc

+0

执行的应用程序有'This.Name'(中的Application.cfc)_and_'Coldbox.AppName'(在配置/ Coldbox.cfc)的值不同? –

+0

他们有单独的名称,组件缓存是问题 –

回答

4

组件缓存中的问题,它必须被关闭在冷藏箱与应用程序根文件夹位于同一级别的设置中

https://groups.google.com/forum/#!topic/coldbox/xARQD93xDNQ

+1

要清楚,该问题与ColdBox或文件的位置没有任何具体关系。只要在同一服务器上有两个使用相同组件路径的ColdFusion应用程序,就必须关闭组件缓存。 –

+0

所以这是因为代码只是指'interceptors.authenticate',CF是基于该值缓存对象,而不是在应用程序上下文中对其进行评估?另一种解决方案是设置每个应用程序映射并引用'app1.interceptors.authenticate'和'app2.interceptors.authenticate'? (具有适当的'COLDBOX_APP_MAPPING'值) –

+0

@PeterBoughton我尝试了这一点,仍然得到同样的问题,虽然它可能是由于组件缓存未被清除(我没有访问服务器管理员在测试环境) –

相关问题