我能否以编程方式找出我的 Web 应用程序(IIS 7 及更高版本)的打开会话数

Can I find out the number of open sessions for my web aplication (IIS 7 and higher) programmatically

我正在寻找一种简单的方法来以编程方式查明当前是否有任何用户会话在我的 IIS(7、7.5、8)Web 应用程序上打开。 我不想计算登录和注销,只检查是否有多个用户处于活动状态...... 针对 PHP 提出了类似的问题:Find Number of Open Sessions 还有许多其他问题,但都是基于 PHP。 不幸的是,这对我的 vb.net 环境没有帮助。

我知道会话将打开并计数,直到达到会话超时,即使用户不再使用该应用程序也是如此。

我需要来自 aspx.vb 的信息(该用户是当前正在处理该应用程序的唯一用户)还是来自 window 控制台应用程序的信息(目前真的只有一个用户吗?使用我的网络应用程序)。

有什么想法吗? 谢谢

您可以使用这样的 global.asax 文件执行此操作:

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
    Application.Lock()
    Application("User_Count") = 0
    Application.UnLock()
End Sub

Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
    Application.Lock()
    Application("User_Count") = Integer.Parse(Application("User_Count")) + 1
    Application.UnLock()
End Sub

Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
    Application.Lock()
    Application("User_Count") = Integer.Parse(Application("User_Count")) - 1
    Application.UnLock()
End Sub

那么 Application("User_Count") 将有未过期会话的数量。要从控制台应用程序访问,您可能需要在您的站点上创建一个服务,您可以调用该服务并检索该值。