c# - 如何安全地统计 session : is Session_Start/End in Global. Asax安全/足够安全?

标签 c# session

我想知道给定时间的并发 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/

相关文章:

c# - CustomType 对 FluentNHibernate 的引用

c# - 如何将 xsd 转换为具有冗余的 cs? (OTA XML 出版物)

javascript - 如何让用户在浏览我的网站时保持不变? Node.JS

c# - 使用 Redis 缓存作为 session 存储 asp.net core

c# - 需要从字符串内部删除\n 和\"

c# - ReSharper 代码清理

c# - 在 MVVM 中,如果 UI 不需要更新,模型中的属性是否需要属性更改事件?

java - 设置自定义 session ID java (apache tomcat)

internet-explorer - CodeIgniter 2.x session 和 Internet Explorer

php - $_SESSION 数组的安全性