למה לא לעשות את זה ב- Session_OnStart? הרי CACHE כמו APPLICATION מוכר לכל הדפים באתר? הדבר השני, עבדתי עד עכשיו עם global.asa , ואני עובד עכשיו עם global.asax, מחקתי global.asa אבל האתר לא מתייחס בכלל ל- global.asax? מה יכולה להיות הסיבה?
Imports System.Web Imports System.Web.SessionState Public Class Global Inherits System.Web.HttpApplication Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs) ' Fires when the application is started Application.Lock() Application.Add("visitors", 0) Application.Add("active_visitors", 0) Application.UnLock() End Sub Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs) ' Fires when the session is started Dim strConn As String = _ "Provider=Microsoft.Jet.OLEDB.4.0;data source=" & server.mappath("...\data\vocabularyasp.mdb") Dim conn As OleDbconnection=New OleDbconnection(strConn) Dim cmd As New OleDbCommand(sql, conn) Dim sql As String = "UPDATE CounterTable SET Counter = Counter + 1" Application.Lock() conn.Open() cmd.ExecuteNonQuery() conn.Close() Application.UnLock() 'Response.Write("Visitors: " & intCount.ToString) End Sub End Class
Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs) ' Fires when the session is started Dim strConn As String = _ "Provider=Microsoft.Jet.OLEDB.4.0;data source=" & server.mappath("...\data\vocabularyasp.mdb") Dim conn As OleDbconnection=New OleDbconnection(strConn) Dim cmd1 As New OleDbCommand(sql1, conn) Dim sql1 As String = "UPDATE CounterTable SET Counter = Counter + 1" Dim cmd2 As New OleDbCommand(sql2, conn) Dim sql2 As String = "SELECT Counter from CounterTable" Dim dr as OleDbDataReader Application.Lock() conn.Open() cmd.ExecuteNonQuery() dr.cmd2.ExecuteReader() dr.read() Application("visitors") = dr("Counter") dr.close() conn.Close() Application.UnLock() Response.Write("Visitors: " & Application("visitors")) End Sub