CCS bug之3: 在线用户是统计最近一个小时的,不符合用户习惯,也没有配置项可以改

症状: 主页上显示的"在线用户"人数以及"在线用户列表"页面的在线用户当前的活动,都是统计最近一个小时内的情况,所以如果一个人注销之后59分钟时系统仍然显示该用户在线,且动作为"正在注销"....后台管理没有对应项配置这个时间.虽然匿名用户的这个统计时间可以配置,但实际上没有效果.

原因: 在存储过程cs_users_Online中hard code了 UserOnlineTimeWindow为60分钟.在代码中hard code了AnonymousUserOnlineTimeWindow为15分钟.

解决方案:
(1)/web/Themes/default/Skins/Skin-SiteSettingsAdmin.ascx中对照AnonymousUserOnlineTimeWindow给UserOnlineTimeWindow也加textbox等控件供配置
(2)/Web/Languages/你需要的所有语言/Resources.xml中添加(1)中增加的本地化字符串
(3)/Control/Admin/SiteSettingsAdmin.cs中对照AnonymousUserOnlineTimeWindow给UserOnlineTimeWindow也加textbox等控件供配置
(4)修改存储过程cs_users_Online,注释掉SET @PastMinutes = 60
(5)全解决方案搜索Users.GetGuestsOnline(15),改成Users.GetGuestsOnline(CSContext.Current.SiteSettings.AnonymousUserOnlineTimeWindow),

你可能感兴趣的:(bug)