【发布时间】:2020-04-22 07:54:08
【问题描述】:
我有一小段代码如下所示,用于列出所有 IIS 工作进程。 (w3wp.exe)
但是当存在多个w3wp.exe 进程时,我需要更多过滤条件。有应用程序池名称或站点名称的过滤选项吗?
var processes = ((DTE2)Marshal.GetActiveObject("VisualStudio.DTE.15.0"))
.Debugger
.LocalProcesses
.Cast<EnvDTE.Process>()
.Where(proc => proc.Name.Contains("w3wp.exe"));
if (!processes.Any())
{
Debug.WriteLine("no w3wp");
}
else if (processes.Count() > 1)
{
Debug.WriteLine("multiple w3wp");
var p = processes.Where(x => ???).Single();
}
else
{
Debug.WriteLine("single w3wp");
}
系统信息
- IIS 10
- Visual Studio 2017
- .Net Framework 4.6.1
【问题讨论】:
-
这能回答你的问题吗? Identify the w3wp System.Diagnostics.Process for a given application pool。顺便说一句,没有必要仅使用 VS Automation 来列出本地进程
-
感谢@MickyD 的信息。找到流程后我会附上流程。所以需要 VS 自动化。
-
啊是的好点
标签: c# .net linq envdte visual-studio-automation