I asp kunde man lätt med hjälp av global.asa få ut hur många aktiva besökare det var just nu. Jag har nu en global.asa fil som ser ur såhär: kanske ska nämna att det heter Global.asax i .net, och inte .asa som i asp. Ok, Men jag behöver inte använda alla subar? Till ASP.NET så har man begåvats med möjligheten att rätt enkelt koppla ihop sig med de interna övervaknings verktyg som Windows har inbyggt (Performance). Där i kan man se hur många connections du har mot en specifik website på din server. Alltså live data, inget trams om man man måste låta sessionen dö...Aktiva besökare just nu
Kan man göra på ett lika smidigt sätt i asp.net?Sv:Aktiva besökare just nu
<kod>
SUB Application_OnStart
' När servern startar är antalet besökare 0
Application("raknare") = 0
END SUB
SUB Session_OnStart
' När en besökare kommer till sidan lägger det till 1 i räknaren
Application("raknare") = Application("raknare") + 1
END SUB
SUB Session_OnEnd
' När en besökare lämnar sidan så dras det bort 1 i räknaren
Application("raknare") = Application("raknare") - 1
END SUB
</kod>
Hur skriver jag ut resultatet?
Jag försökte att skriva det till en literal med denna kod:
min_literal.text = Application("raknare")
Men får felmeddelande:
Name 'rankare' is not declared.
Edit: Fixade felet, stavade literalnamnet fel..
Men den skriver inte ut någon siffra, varför?Sv: Aktiva besökare just nu
Så här ser strukturen ut, C# nu; om du vill så kan jag skriva om det till VB.net
using System;
using System.Collections;
using System.ComponentModel;
using System.Web;
using System.Web.SessionState;
namespace Dittnamespace
{
/// <summary>
/// Summary description for Global.
/// </summary>
public class Global : System.Web.HttpApplication
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
public Global()
{
InitializeComponent();
}
protected void Application_Start(Object sender, EventArgs e)
{
}
protected void Session_Start(Object sender, EventArgs e)
{
}
protected void Application_BeginRequest(Object sender, EventArgs e)
{
}
protected void Application_EndRequest(Object sender, EventArgs e)
{
}
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
}
protected void Application_Error(Object sender, EventArgs e)
{
}
protected void Session_End(Object sender, EventArgs e)
{
}
protected void Application_End(Object sender, EventArgs e)
{
}
#region Web Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
}
#endregion
}
}
/m
Sv: Aktiva besökare just nu
Hoppas jag har översatt rätt, kan finnas något syntax fel. Var länge sedan jag programmerade vb.net.
Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.Web
Imports System.Web.SessionState
Namespace Dittnamespace
public class Global
Inherits System.Web.HttpApplication
Private components As System.ComponentModel.IContainer = Nothing
Public Sub New()
InitializeComponent()
End Sub
Protected Sub Application_Start(ByVal sender As Object,ByVal e As EventArgs)
End Sub
Protected Sub Session_Start(ByVal sender As Object,ByVal e As EventArgs)
End Sub
Protected Sub Application_BeginRequest(ByVal sender As Object,ByVal e As EventArgs)
End Sub
Protected Sub Application_EndRequestByVal sender As Object,ByVal e As EventArgs)
End Sub
Protected Sub Application_AuthenticateRequest(ByVal sender As Object,ByVal e As EventArgs)
End Sub
Protected Sub Application_Error(ByVal sender As Object,ByVal e As EventArgs)
End Sub
Protected Sub Session_End(ByVal sender As Object,ByVal e As EventArgs)
End Sub
Protected Sub Application_End(ByVal sender As Object,ByVal e As EventArgs)
End Sub
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container
End Sub
End Class
End Namespace
/m
Sv:Aktiva besökare just nu
Ska det se ut såhär?
Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.Web
Imports System.Web.SessionState
Namespace Dittnamespace
public class Global
Inherits System.Web.HttpApplication
Private components As System.ComponentModel.IContainer = Nothing
Public Sub New()
InitializeComponent()
End Sub
Protected Sub Application_Start(ByVal sender As Object,ByVal e As EventArgs)
Application("raknare") = 0
End Sub
Protected Sub Session_Start(ByVal sender As Object,ByVal e As EventArgs)
Applikation("raknare") = Application("raknare") + 1
End Sub
Protected Sub Session_End(ByVal sender As Object,ByVal e As EventArgs)
Applikation("raknare") = Application("raknare") + 1
End Sub
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container
End Sub
End Class
End Namespace
Edit:
Får felmeddelande på första raden:
The content in the application file is not valid.
Raden = "Imports System"
Sv: Aktiva besökare just nu
Tror 15 seconds har en artikel på hur man använder sig av performance objekten i ASP.NET annars så är det bara ut och söka för informationen finns för den som hittar den :)
- M