【发布时间】:2013-09-18 20:42:07
【问题描述】:
我们有一个 ASP.NET 2.0 网站,上面有一些旧的经典 asp 页面。有一个login.asp 页面和home.aspx 页面。对于经过身份验证和授权的用户,Login.asp 页面被重定向到 home.aspx。
我们想要统计访问该网站的用户数量。如果用户达到某个指定值,我们将显示一些带有一些信息的弹出窗口。我们将应用程序变量存储在 global.asax 文件中。请为 global.asax 截取以下代码
Protected Overloads Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
Application("Count") = 0
End Sub
Protected Overloads Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
Application("Count") = CInt(Application("Count"))+ 1
End Sub
我正在访问 Home.aspx 的 PageLoad 方法上的 Application("Count")。
当我使用 url http://localhost/login.asp 打开浏览器并成功登录时,计数永远不会增加。如果我去http://localhost/home.aspx,计数会增加。看起来当 login.asp 重定向到 home.aspx 时,它不会调用 global.asax 上的 session_start。
我对经典asp不是很熟悉。最终用户始终来自 login.asp。
从 global.asax 文件中访问正确递增的应用程序变量的最佳方法是什么?
【问题讨论】:
-
首先我想说的是,这不是预测用户的好方法 - `application("count")` 指的是一个静态列表,如果不是只有一个,如果你在网络花园上运行您的网站。会话开始触发以及所有蜘蛛和机器人,以及默认情况下不允许 cookie 的用户。也许另一种选择,但不是更好的一种,是在会话上设置一个变量,如果没有设置,那么你增加计数器。
-
我没有看到一个明显的答案,它看起来是正确的,但是你应该知道,如果你在 session_?End 中减少计数? (不记得名字了),它需要一段时间才能减少。 不活动 (x = SessionTimeout) X 分钟后,观看结束。
-
您对 Count 个用户使用
Session_Start和Session_End吗? -
@Aristos 你不为 Count 个用户使用
Session_Start和Session_End吗? WebFarm 哪个最好的解决方案?样品?
标签: asp.net vb.net iis asp.net-2.0