Как получить процессы, относящиеся к определенному сеансу? - PullRequest
1 голос
/ 09 декабря 2010

Я хочу получить все процессы, предназначенные для определенного сеанса.т.е. если два человека используют мое веб-приложение, то я хочу получить все процессы, используемые user1, и все процессы, используемые user2.

I can get all processes by writing Process.GetProcesses() but how to get it in a group.
e.g:

User1:  Process342
User1:  Process151
User2:  Process452
User2:  Process674
User2:  Process111

Может кто-нибудь помочь, пожалуйста.

Ответы [ 2 ]

0 голосов
/ 14 сентября 2017

Я вижу два простых способа сделать то, что вы хотите в C # (не знаю о ASP.NET):

Вы можете отфильтровать процессы по SessionId, чтобы запустить процессы для одного сеанса

Process[] processes = Process.GetProcesses().Where(p => p.SessionId == sessionID).ToArray();

Или вы можете отсортировать результаты, чтобы сгруппировать их по сеансам

Process[] processes = Process.GetProcesses().OrderByDescending(p => p.SessionId);
0 голосов
/ 09 декабря 2010

Вам необходимо понять, как ASP.NET и IIS работают вместе - эти статьи могут помочь:

  1. http://www.code -magazine.com / Article.aspx? Quickid = 0511061
  2. http://dotnetslackers.com/articles/iis/ASPNETInternalsIISAndTheProcessModel.aspx
  3. http://msdn.microsoft.com/hi-in/magazine/cc188942(en-us).aspx

Теперь перейдя к конкретному вопросу, среда выполнения ASP.NET размещается в рабочем процессе IIS.Сеанс - это просто логическая область для идентификации сеанса пользователя из браузера, а ASP.NET предоставляет пакет состояний для хранения определенных значений сеанса.Все пользователи (сеансы) обслуживаются одним и тем же (набором) рабочим процессом (-ами), поэтому поиск процессов за сеанс не имеет никакого смысла.Все, что вы можете сделать, это узнать, какие процессы выполняются на веб-сервере.

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