2010-05-05 83 views
1

我有一个asp.net网站,我想获得当前正在查看我的网站的用户数量。我知道有一些第三方软件可用,这将给我的在线用户列表,但我不想这样做。获取asp.net网站的实例数量

有没有人知道这可以在asp.net中实现?可能是因为有任何服务器变量可以跟踪网站实例,从而给出当前访问该网站的用户数量。请帮帮我。

如果你想指望其正在使用你的网站,此刻你可以在Global.asax文件中使用下面的代码的用户

回答

0

private int activeUsers = 0; 
protected void Session_Start(Object sender, EventArgs e) 
{ 
    activeUsers++; 
    Context.Items["activeUsers"] = activeUsers; 
} 
protected void Application_BeginRequest(Object sender, EventArgs e) 
{ 
    Context.Items.Add("activeUsers", activeUsers); 
} 
protected void Session_End(Object sender, EventArgs e) 
{ 
    if(activeUsers > 0) 
    activeUsers--; 
} 
protected void Application_End(Object sender, EventArgs e) 
{ 
    activeUsers = 0; 
} 
+0

感谢Mug4n。这一定会帮助我。 但是有一个问题,因为这将在应用程序级别,我仍然需要使用会话事件? 另外,我如何在主页上访问此号码。 – flopdix 2010-05-05 21:18:14

+0

我认为这种方法将是非常不准确和不可靠的。 – Bryan 2010-05-06 00:03:21

+0

你为什么认为这是非常不准确的? – MUG4N 2010-05-06 10:51:38

0

我会使用性能计数器来代替。

下看 ASP.NET应用程序性能计数器

http://msdn.microsoft.com/en-us/library/fxk122b4.aspx

+0

谢谢拉吉。你有没有可以分享的例子? – flopdix 2010-05-05 21:21:51

+0

http://stackoverflow.com/questions/161737/what-are-the-best-asp-net-performance-counters-to-monitor and http://authors.aspalliance.com/aspxtreme/webapps /monitoringaspnetapplicationperformance.aspx – 2010-05-05 21:45:15