2013-04-04 60 views
0

工作在我Global.cs,在session_start不会在asp.net

namespace HitCounters 
{ 
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; 
     } 
    } 


} 
} 

而且,在母版页的Page_Load中,

countOnline.Text = HitCounters.Global.CurrentNumberOfUsers.ToString(); 
    countVisitor.Text = HitCounters.Global.TotalNumberOfUsers.ToString(); 

我想在session_start不起作用。 访客总数和在线用户总数总是显示为零。 我想知道为什么!我错过了什么吗?

+0

你的代码不是线程安全的。在增量周围添加锁,并减少或使用互锁增量。 – NickD 2013-04-04 09:49:45

+0

我参考此链接> http://imar.spaanjaars.com/223/howto-create-a-hit-counter-using-the-globalasax-file-in-aspnet-1x – zey 2013-04-04 09:50:45

+0

您是否在您的应用程序中使用Session? – Joe 2013-04-04 09:50:58

回答

0

在您的Web.config中配置<sessionState>

相关问题