2011-02-28 3 views

답변

1

의 Global.asax에서 이렇게 :

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs) 
    ' Code, der beim Starten der Anwendung ausgeführt wird. 
    ' Set our user count to 0 when we start the server 
    Application("ActiveUsers") = 0 
End Sub 


Sub Application_End(ByVal sender As Object, ByVal e As EventArgs) 
    ' Code, der beim Beenden der Anwendung ausgeführt wird. 
    Application("ActiveUsers") = 0 
End Sub 



Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs) 
    ' Code, der beim Starten einer neuen Sitzung ausgeführt wird. 
    Session.Timeout = 20 
    Session("Start") = Now 
    Application.Lock() 
    Application("ActiveUsers") = CInt(Application("ActiveUsers")) + 1 
    Application.UnLock() 
End Sub 


Sub Session_End(ByVal sender As Object, ByVal e As EventArgs) 
    ' Code, der am Ende einer Sitzung ausgeführt wird. 
    ' Hinweis: Das Session_End-Ereignis wird nur ausgelöst, wenn der sessionstate-Modus 
    ' in der Datei "Web.config" auf InProc festgelegt wird. Wenn der Sitzungsmodus auf StateServer 
    ' oder SQLServer festgelegt wird, wird das Ereignis nicht ausgelöst. 
    Application.Lock() 
    Application("ActiveUsers") = CInt(Application("ActiveUsers")) - 1 
    Application.UnLock() 
End Sub 
2

global.asax 파일을 사용하여 만들 수 있습니다.

세션이 시작될 때마다 현재 방문자 수를 보유하는 정수가 증가합니다. 세션이 종료 될 때마다 해당 정수에서 1을 뺍니다. 그런 다음 정보를 검색 할 수 있으려면 모든 페이지에 공개 속성을 사용해야합니다.

public class Global : System.Web.HttpApplication 
{ 
    private static int totalNumberOfUsers = 0; 
    private static int currentNumberOfUsers = 0; 

    protected void Session_Start(Object sender, EventArgs e) 
    { 
     totalNumberOfUsers += 1; 
     currentNumberOfUsers += 1; 
    } 
    protected void Session_End(Object sender, EventArgs e) 
    { 
     currentNumberOfUsers -= 1; 
    } 
    protected void Application_End(Object sender, EventArgs e) 
    { } 

    public static int TotalNumberOfUsers{ get { return totalNumberOfUsers; } } 
    public static int CurrentNumberOfUsers{ get { return currentNumberOfUsers; } } 
} 

다음으로 제어에서 올바른 레이블에 global.asax 파일의 값을 설정하십시오.

private void Page_Load(object sender, System.EventArgs e) 
{ 
    int currentNumberOfUsers = HitCounters.Global.CurrentNumberOfUsers; 
    int totalNumberOfUsers = HitCounters.Global.TotalNumberOfUsers; 
    lblCurrentNumberOfUsers.Text = currentNumberOfUsers.ToString(); 
    lblTotalNumberOfUsers.Text = totalNumberOfUsers.ToString(); 
} 
관련 문제