我想知道给定时间的并发 session 数。但是对于蜘蛛和负载均衡器以及可能不知道的影响,在全局 asax 中执行此操作有多安全:
void Session_Start(object sender, EventArgs e)
{
counter++;
}
void Session_End(object sender, EventArgs e)
{
counter--;
}
有什么建议吗?
最佳答案
至少,这个解决方案有一个线程问题(除了您提到的可能影响您的其他问题,我不会介绍):
递增和递减任务应使用 Interlocked.Increment
以原子方式完成和 Interlocked.Decrement
方法而不是 ++
或 --
。
关于c# - 如何安全地统计 session : is Session_Start/End in Global. Asax安全/足够安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/767654/