Как я могу определить число пользователей на сайте ASP.NET (IIS)? И их информация?

, поскольку это элиф-оператор по своей природе, он не будет запускать оператор, если предыдущий, если утверждение истинно: например,

x = True

if x:
 print('if')
elif x:
 print('elif')

output:   'if'
16
задан Samuel Meacham 30 September 2008 в 23:35
поделиться

5 ответов

Счетчики производительности ASP.NET как Активные Сессии Сервера состояния (Количество сессий активного пользователя) должны выручить Вас. Тогда Вы можете всего чтение и отображать счетчики производительности от Вашей администраторской страницы..

11
ответ дан 30 November 2019 в 16:50
поделиться

В Примечании global.aspx

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();
}

: Приложение. Блокировка и Приложение. Разблокируйте методы, используются, чтобы препятствовать тому, чтобы несколько потоков заменили этот одновременно.

В Web.config

Проверяют, что SessionState является "InProc" для этого для работы

    <system.web>
        <sessionState mode="InProc" cookieless="false" timeout="20" />
    </system.web>

В .aspx Примечании файла

Visitors online: <%= Application["OnlineUsers"].ToString() %>

: Код был первоначально скопирован с <забастовки> http://www.aspdotnetfaq.com/Faq/How-to-show-number-of-online-users-visitors-for-ASP-NET-website.aspx (ссылка, больше не активная)

17
ответ дан 30 November 2019 в 16:50
поделиться

При использовании .net Membership, Вы могли бы использовать

Membership.GetNumberOfUsersOnline()
[еще 113] об этом: http://msdn.microsoft.com/en-us/library/system.web.security.membership.getnumberofusersonline.aspx

4
ответ дан 30 November 2019 в 16:50
поделиться

Путем я видел, что сделанный в прошлом добавляет дополнительный код к событию 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 .

1
ответ дан 30 November 2019 в 16:50
поделиться

Если вы хотите реализовать тот же механизм самостоятельно, вы можете определить как класс CurrentUserManager и реализовать здесь одноэлементный шаблон. Этот одноэлементный объект класса CurrentUserManager будет уникальным в домене приложений. В этом классе вы один раз создадите его собственный экземпляр, и вы запретите другим создавать новые экземпляры этого класса, скрыв его конструктор. Каждый раз, когда к этому объекту приходит запрос, этот единственный экземпляр дает ответ. Итак, если вы реализуете список, в котором хранятся записи о каждом пользователе (когда пользователь входит, вы добавляете его в список; когда он уходит, вы удаляете его из списка). И, наконец, если вам нужен текущий счетчик пользователей, вы можете просто запросить счетчик списка у этого одноэлементного объекта.

2
ответ дан 30 November 2019 в 16:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: