我可以从c#windows服务列出Web应用程序的所有活动会话ID吗?

时间:2012-07-03 17:23:35

标签: c# iis-7

我们正在跟踪应用程序上的用户,并希望在他们注销或会话超时时将其计时。注销没有问题,会话超时约95%的时间。但是有5%的时间没有调用Session_End,或者我正在丢失用户的会话以将其用户ID传递给数据库以进行时钟输出。

以下是我在Global.asax中的代码:

     protected void Session_End(object sender, EventArgs e)
        {
            var currentUser = Session[Constants.SessionKey_User] as User;

            if (currentUser != null)
            {
                //passes the user id to a db proc
                Utilities.LogTimeTrackingEvent(currentUser.UserId, Constants.TimeTrackingEntryTypes.Stop);   
             }         
        }

我们的想法是设置一个Web服务,每隔十分钟为所有活动会话轮询Web服务器(IIS 7),并将其与存储在数据库中的会话ID进行比较。对于不在Web服务器列表中的所有会话ID,请为这些用户计时。这看起来是否合理,听起来像是一种合理的做法?感谢。

0 个答案:

没有答案