onSessionEnd显然没有开火

时间:2011-04-05 19:08:13

标签: coldfusion

我在onSessionStart中有一个INSERT INTO日志文件,在onSessionEnd中有一个UPDATE。 我通过从Application.cfc中的其他地方调用onSessionEnd手动测试它,所以我知道它正在工作。

但这是它唯一被解雇的时间。

我想知道onSessionEnd是否永远不会被解雇。

2 个答案:

答案 0 :(得分:3)

我对我的评论得到了足够的赞成,我想我已经把它作为如何调试onSessionEnd方法的答案。

首先,您需要记住,如果直接调用onSessionEnd,则会在常规请求上下文中调用它。这意味着它可以访问在常规会话结束时调用它通常无法访问的变量。这意味着“通过调用onSessionEnd手动”测试不是测试方法的有效方法。

为此,可靠地调试onSessionEnd方法的唯一方法是明智地使用cflog标记。您需要在方法运行时添加cflog条目以标记,您需要捕获错误,记录错误或将cfcatch范围转储到文件以供审阅。您还需要确保通过SessionScopeApplicationScope参数传递方法中引用的任何内容,并且您没有引用Arguments以外的任何范围和Server。请参阅livedocs以供参考。

希望这可以帮助您找到问题的根源。

答案 1 :(得分:1)

我补充说你甚至无法从onSessionEnd方法中调用其他Application.cfc函数。