Visual Studio 无法找到 w3wp 进程

40

我在使用 Visual Studio 进行进程附加时遇到了 intermittently 的问题,无法看到正在运行的 W3wp.exe 进程,其他实例的 Visual Studio 可以看到该进程。重新启动 Visual Studio 后,该进程将出现在附加进程列表中。

点击刷新按钮没有任何影响,我可以在看不到该进程的情况下使用 Web 应用程序。

有什么想法吗?


9
你有检查“显示给所有用户会话”复选框吗?你尝试过按刷新按钮吗? - sll
是的,如上所述,刷新没有任何影响,我通常可以看到它。所有用户都已选中。 - Kev Hunter
你确定你正在使用IIS而不是VS Web服务器吗?我怀疑进程是否在运行,你能在任务管理器中看到它吗?虽然在VS附加窗口中看不到。 - Davide Piras
是的,我可以在任务管理器中看到它,就像我的答案中所说的那样,我也可以在其他 Visual Studio 实例中看到它。 - Kev Hunter
这里有一些建议:https://dev59.com/I2855IYBdhLWcg3wfUZM - David Airapetyan
9个回答

69

请确保“显示所有用户的进程”复选框已被勾选。

当处于“附加到进程”窗口时,左下角有一个名为“显示所有用户的进程”的复选框。

带有Show Processes for All Users 复选框的Attach to Proccess 窗口

希望这能对您有所帮助,Kev Hunter!


53

w3wp.exe 在运行过程中不会显示,除非真的有 Web 应用程序实例正在运行。

首先尝试访问您的 Web 页面,当它第一次显示时,请尝试附加调试器。此时进程应该会出现。


刷新页面,重新填充IIS进程列表。谢谢。 - Arjun

19

我猜我的回答可能有点晚,但肯定可以帮助某些人。

我遇到了类似的问题,但找不到解决方法。

发生了什么事情

如果您无法在附加进程中找到实例,则需执行以下操作:

IIS -> 右键单击正在工作的应用程序 -> 管理应用程序 -> 浏览

这将创建一个新实例。现在,您可以打开Visual Studio并尝试附加进程。


4

您需要以管理员权限运行Visual Studio(以管理员身份运行),才能查看w3wp进程。


我总是以管理员权限运行Visual Studio。 - Kev Hunter
不确定为什么你被踩了,这实际上解决了我的问题。 - Jim Skerritt

3

我遇到了同样的问题。我尝试在IIS中重启站点和回收应用程序池,但都没有帮助。当我点击IIS中的 Browse: * (http) 后,w3wp进程出现了。


2

首先,在IIs中浏览您的网站。如果一切正常,以管理员身份运行vs,然后您可以附加w3wp.exe


0

我想分享一下我的经验,供未来的读者参考。

请注意,如果您有一个 Web 服务器群集 配置(用于负载平衡等),w3wp 进程可能不会在您期望的机器上启动。特别是如果您正在使用不同的网站/应用程序,例如带有后端 Web API 的前端网站。

除非您的网站仅配置为在 单个 IIS 实例 上运行,否则 w3wp 进程可能会在 Web 群集中的其他计算机上启动。

这可能是网络团队/部门的错误配置或意图行为。我没有必要的经验来准确定位应如何配置。

在 MSDN 上还找到了一个相关页面:

https://msdn.microsoft.com/en-us/library/bb742600.aspx


0

当在 Visual Studio 中调试 WCF 服务时,可以采用以下快速修复方法:

  1. 打开客户端应用程序的 web.config 文件。

  2. 查找未出现在“附加到进程”中的服务的终结点条目。

  3. 按下 Ctrl + 单击终结点 URL,以便在 Visual Studio 内部浏览器中加载服务窗口。

就这样。IIS 将启动,现在您可以回到服务上并在进程列表中找到 W3WP.exe。

此外,请确保已选中“显示所有用户的进程”。


0
有时我会遇到这个问题,而且这个或那个问题的解决方案都不起作用。
在这种情况下,通常是因为后台有另一个未正确关闭的VS10副本。出于某种原因,它会阻止许多进程(包括w3wp)的访问。
强制关闭该进程并启动VS10的新实例,您应该可以在附加对话框中看到所有进程。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接