coldfusion - onSessionEnd 显然没有触发

标签 coldfusion

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

但这是它唯一一次被发射。

我想知道 onSessionEnd 是否永远不会被触发。

最佳答案

我的评论得到了足够多的支持,我想我应该将其作为如何调试 onSessionEnd 方法的答案。

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

为此,可靠地调试 onSessionEnd 方法的唯一方法是明智地使用 cflog 标记。当方法运行时,您需要添加 cflog 条目来进行标记,您需要进行错误捕获、记录错误或将 cfcatch 范围转储到文件中以供检查。您还需要确保您在方法中引用的任何内容都是通过 SessionScope 和 ApplicationScope 参数传入的,并且您没有引用除参数服务器。请参阅livedocs供引用。

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

关于coldfusion - onSessionEnd 显然没有触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5557126/

相关文章:

coldfusion - 如何让 DateCompare() 在 ColdFusion 10 中运行?

coldfusion - 如何重置 session 变量

coldfusion - 从coldfusion中的自动下载网址获取文件

image - CFDocument 显示错误的图像

unicode - ColdFusion cfmail 主题行中的特殊字符

debugging - 如何记录 ColdFusion 应用程序中用于调试的所有方法调用

ColdFusion 9 动态方法调用

javascript - 非javascript定时器

excel - 我可以添加电子表格行然后格式化吗?

xml - Coldfusion onCFCRequest 将 XML 的返回类型更改为 WDDX