Session_Start 不触发

aje*_*ess 5 vb.net asp.net iis asp.net-2.0

我们有一个 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
Run Code Online (Sandbox Code Playgroud)

我正在访问 Home.aspx 的 PageLoad 方法上的 Application("Count")。

当我用 url 打开浏览器http://localhost/login.asp并成功登录时,计数永远不会增加。如果我转到http://localhost/home.aspx,计数会增加。看起来当 login.asp 重定向到 home.aspx 时,它不会调用 global.asax 上的 session_start。

我对Classic asp不是很熟悉。最终用户总是来自 login.asp。

从 global.asax 文件访问正确递增的 Application 变量的最佳方法是什么?

Han*_*ing 1

经典 ASP 页面不由 ASP.Net 引擎处理。这意味着 .asp url 永远不会触发 Global.asax 事件是正确的。