在fflocation / cfheader,我的沙箱只有ColdFusion会话丢失

时间:2016-04-29 20:16:59

标签: session coldfusion development-environment

几天前,我的开发服务器在cflocation / cfheader标签之后停止维护会话变量。这是一个间歇性的问题,持续了大约一个月,但几天前变得不变。我正在寻找一个只在我的开发服务器上发生这种情况的原因。我是团队中唯一失去会话问题的成员。我在两个测试环境中的任何一个或生产服务器上都没有问题,它在三个不同的浏览器上工作(失败)相同。系统受密码保护,并使用会话变量保持登录状态。在解决问题之前,我无法做任何事情。

编辑:在Apache 2.2.24 Win64上使用apr-1.4.6P运行CF10 apr-util-1.4.1 apr-iconv-1.2.1 openssl-1.0.1e + nasm zlib-1.2.7 + asm 我工作的两个网站都是https。

以下是我所知道的:

我处理两个受密码保护的应用程序:一个使用会话变量,另一个使用客户端变量。只有会话变量丢失。客户端变量的应用程序运行正常。两个系统都使用客户端cookie。

我用版本控制中的最新代码替换了所有代码,因此在我的代码中它不是唯一的东西。我将我的服务器设置与另一个团队成员进行了比较,但存在一些差异,但我最近没有更改任何设置。可能相关的一个区别是她在c:/ apache2 / htdocs /中有她的沙盒,而我在c:/ inetpub / wwwroot /中有我的沙箱,但这也不是新的。我们有相同版本的Windows,可能是同一台计算机(公司发行)。我发现的一个区别是,当我重新启动服务器时,我在coldfusion-error日志中得到以下条目:

显示java.lang.NullPointerException     at coldfusion.server.jrun4.metrics.SimpleLoadMetric.run(SimpleLoadMetric.java:157)     在coldfusion.scheduling.ThreadPool.run(ThreadPool.java:260)     在coldfusion.scheduling.WorkerThread.run(WorkerThread.java:71)

我的同事在她的日志中的任何地方都没有这个。我尝试关闭所有调试输出,但这并没有改变任何东西,我的同事也开启了所有调试,因此无法成为原因。我在调试此问题时愚蠢地清除了我的日志文件,因此我不知道何时开始出现此错误。

我花了好几个小时查看代码,但问题的原因可能不存在,因为我运行的代码与同事一样,并且运行在生产中。关于可能导致此问题的开发环境可能有什么不同的任何想法将不胜感激。

1 个答案:

答案 0 :(得分:1)

我终于解决了这个问题。 问题出在J2EE会话变量上(我上面忘了提到)。我们在测试和生产环境中使用它们没有问题(一旦我们让它们工作并不容易)。我也在dev上使用它们并且几个月没有更改设置。我已经尝试过关闭它们,但它并没有阻止这个问题。我还尝试重新启动CF服务器和Apache服务器而不解决问题。我没有尝试过的是同时重启两台服务器。这是关键。

dev上发生的事情是JSESSIONID和urlencoded之间的问题。 “JSESSIONID = 8A9C0E12E731BFC11E1D98FD2ADC1E23.cfusion” 成为 “JSESSIONID = 8A9C0E12E731BFC11E1D98FD2ADC1E23%2Ecfusion”

几个月前我们第一次切换到J2EE时发生了这种情况,但我已经解决了这个问题。我不记得我改变了什么让它在当时工作,我不知道是什么改变让它停止工作。我不喜欢把它们关掉,因为它在开发和测试/制作之间产生了另一个区别,但我现在要把它们关掉,因为我必须重新开始工作。