我希望获得针对特定会话的所有流程。 即如果有两个人正在使用我的Web应用程序,那么我想获得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
任何人都可以帮忙。
答案 0 :(得分:0)
你需要了解ASP.NET& IIS协同工作 - 这些文章可能有所帮助:
现在回答您的具体问题,ASP.NET运行时将托管在IIS工作进程中。 Session只是从浏览器中识别用户会话的逻辑范围,ASP.NET提供了一个状态包来存储会话特定值。所有用户(会话)都由相同(一组)工作进程提供服务 - 因此每个会话查找进程没有任何意义。您所能做的就是找出在Web服务器上执行的进程。
答案 1 :(得分:0)
我看到两种简单的方法可以在C#中做你想做的事情(不了解ASP.NET):
您可以按SessionId过滤进程以获取单个会话的进程
Process[] processes = Process.GetProcesses().Where(p => p.SessionId == sessionID).ToArray();
或者您可以对结果进行排序以按会话对其进行分组
Process[] processes = Process.GetProcesses().OrderByDescending(p => p.SessionId);