我正在使用 Session.Abandon 清除会话数据,这在内部将触发 session_end 以结束会话。它在我的本地机器上工作正常,但是当我在生产环境中测试它时它失败了(不会触发 session_end)。我们在生产环境中使用负载均衡器,所以我怀疑这可能是 session_End 事件没有触发的原因,尽管会话数据正在被清除。会话状态仅处于 InProc 模式。
编辑-
更正 - 我们有两个网站通过 IIS 在一台机器上托管,负载均衡器负责将请求导航到 IIS。两个网站共享相同的 cookie。我们正在尝试根据 cookie 值在第二个站点的 Session_Start 中设置一些值。当用户从第一个站点重定向到第二个站点时,它第一次工作正常,但第二次重定向我们得到会话 null。我很确定只有在第二次不调用 session_start 时才会发生这种情况,这基本上意味着当第一次重定向时,我们调用 session.abandon ,它不会触发 session_end ,此后所有后续请求 session_Start 都不会触发。