, поскольку это элиф-оператор по своей природе, он не будет запускать оператор, если предыдущий, если утверждение истинно: например,
x = True
if x:
print('if')
elif x:
print('elif')
output: 'if'
Счетчики производительности ASP.NET как Активные Сессии Сервера состояния (Количество сессий активного пользователя) должны выручить Вас. Тогда Вы можете всего чтение и отображать счетчики производительности от Вашей администраторской страницы..
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
Application["OnlineUsers"] = 0;
}
void Session_Start(object sender, EventArgs e)
{
// Code that runs when a new session is started
Application.Lock();
Application["OnlineUsers"] = (int)Application["OnlineUsers"] + 1;
Application.UnLock();
}
void Session_End(object sender, EventArgs e)
{
// Code that runs when a session ends.
// Note: The Session_End event is raised only when the sessionstate
// mode is set to InProc in the Web.config file.
// If session mode is set to StateServer or SQLServer,
// the event is not raised.
Application.Lock();
Application["OnlineUsers"] = (int)Application["OnlineUsers"] - 1;
Application.UnLock();
}
: Приложение. Блокировка и Приложение. Разблокируйте методы, используются, чтобы препятствовать тому, чтобы несколько потоков заменили этот одновременно.
Проверяют, что SessionState является "InProc" для этого для работы
<system.web>
<sessionState mode="InProc" cookieless="false" timeout="20" />
</system.web>
Visitors online: <%= Application["OnlineUsers"].ToString() %>
: Код был первоначально скопирован с <забастовки> http://www.aspdotnetfaq.com/Faq/How-to-show-number-of-online-users-visitors-for-ASP-NET-website.aspx забастовка> (ссылка, больше не активная)
При использовании .net Membership, Вы могли бы использовать
Membership.GetNumberOfUsersOnline()
[еще 113] об этом: http://msdn.microsoft.com/en-us/library/system.web.security.membership.getnumberofusersonline.aspx
Путем я видел, что сделанный в прошлом добавляет дополнительный код к событию Session_OnStart в файле Global.asax, чтобы хранить информацию в агностике сессии путь, например, база данных или объект HttpApplicationState. В зависимости от Ваших потребностей Вы могли также использовать Session_OnEnd для удаления этой информации.
можно хотеть инициализировать и очистить часть этой информации с помощью событий Application_Start и Application_End.
страница администрирования может тогда считать эту информацию и отобразить статистику и т.д.
, Это объяснено в большей глубине в http://msdn.microsoft.com/en-us/library/ms178594.aspx и http://msdn.microsoft.com/en-us/library/ms178581.aspx .
Если вы хотите реализовать тот же механизм самостоятельно, вы можете определить как класс CurrentUserManager и реализовать здесь одноэлементный шаблон. Этот одноэлементный объект класса CurrentUserManager будет уникальным в домене приложений. В этом классе вы один раз создадите его собственный экземпляр, и вы запретите другим создавать новые экземпляры этого класса, скрыв его конструктор. Каждый раз, когда к этому объекту приходит запрос, этот единственный экземпляр дает ответ. Итак, если вы реализуете список, в котором хранятся записи о каждом пользователе (когда пользователь входит, вы добавляете его в список; когда он уходит, вы удаляете его из списка). И, наконец, если вам нужен текущий счетчик пользователей, вы можете просто запросить счетчик списка у этого одноэлементного объекта.