ASP.net: Как составить список веб-приложений для всех пользователей - PullRequest
0 голосов
/ 11 мая 2011

Я хочу знать, как используется память моего веб-сайта. Сначала я хочу узнать подробности сеанса всех пользователей, это поможет мне решить, следует ли изменить режим sessionState на SqlServer или StateServer.

Как можноя делаю?

Спасибо

Ответы [ 2 ]

1 голос
/ 11 мая 2011

Что касается использования памяти сайта, я бы посмотрел на perfmon.Если бы я действительно хотел посчитать, сколько памяти я использовал в каждой пользовательской сессии, я бы сделал это при добавлении, а не при прекращении сеанса.Это может быть сложно, если у вас есть Session ["foo"] = bar повсеместно, его нужно как-то обернуть.

Если вы перейдете в состояние сеанса вне процесса, вам понадобитсяпроверить все, что касается сеанса.Ваши переменные сеанса пересекают границы процесса, они должны быть сериализуемыми, и определенно есть некоторые вещи, которые не работают.

0 голосов
/ 11 мая 2011

Я не уверен, поможет ли это вам решить проблему, но вы можете попробовать этот фрагмент кода в событии Session_End ... Предполагая, что это событие запущено из процесса выхода из системы .. Это последнее из событий, где доступна переменная сеанса.

protected void Session_End(object sender, EventArgs e)
 {
            string strMessage = string.Empty;
            for (int i = 0; i < this.Session.Count; i++)
            {
                strMessage += string.Format("Session of {0} Value is {1}", i.ToString(), this.Session[i].ToString());
                strMessage += "/n";
            }
        }

this.Session.Count должен указать количество сеансов на сервере для приложения. Это решение может работать, только если ваше приложение размещено на одном веб-сервере, а не на ферме веб-серверов. Я не знаю, как сеансы обрабатываются в ферме веб-серверов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...