121

我使用 Visual Studio 2010 在我的本地机器上调试一个 asp.net MVC 项目。步骤是:

单击调试并尝试附加进程“w3wp.exe”。但是它不在列表中。

我确定单击“显示所有会话中的进程”。

4

19 回答 19

202

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

首先尝试访问您的网页,当它第一次显示时,尝试附加您的调试器。现在应该显示该过程。

于 2012-11-19T21:01:12.147 回答
101

您需要单击任务管理器列表底部的显示所有用户的进程。这是我需要做的。

于 2013-11-23T22:47:38.993 回答
15
  1. 重新启动 IIS
  2. 右键单击您的网站>>管理网站>>浏览
  3. 返回 Visual Studio 刷新进程列表
于 2015-02-27T19:55:21.057 回答
9

尝试检查:“显示所有用户的进程”当在左下角的“附加到进程”窗口中有一个复选框“显示所有用户的进程”

于 2018-09-25T03:44:30.047 回答
6

一个简单的方法,当 w3wp 没有出现在列表中时,打开浏览器并输入 localhost,然后输入。之后 w3wp 出现在列表中。

于 2019-05-17T09:41:13.360 回答
3

仅仅因为启动了 IIS 应用程序池,可能没有 IIS 工作进程w3wp在运行。在收到第一个 Web 请求之前,IIS 不会启动工作进程。

就我而言,我首先启动了应用程序,但仍然找不到w3wp.exe. 然后我从 ( IIS->Worker Process -> Process Id) 中取出工作进程 ID,然后在详细信息选项卡中按 id 搜索并找到它。

于 2020-12-28T14:07:52.597 回答
3
  1. 清除解决方案
  2. 重建解决方案
  3. iisreset通过在命令提示符中编写命令来重置 IIS
  4. 转到 IIS 并浏览您的网站
  5. 以管理员身份运行 VS
  6. 工具 -> 附加到进程 -> 确保选中“显示所有用户的进程”复选框
    -> w3wp.exe
  7. 附加到 w3wp.exec
于 2021-04-12T05:14:13.247 回答
2

GoTo Web Project properties -> Select (Web) on the left sidebar -> GoTo under (Servers) header -> Click to dropdown and select"Local IIS"

并申请。然后,当您开始调试时,您将在进程列表中看到 w3wp.exe。

于 2015-02-16T19:28:30.930 回答
2

如果您使用 Advanced Rest Client 之类的东西来测试路由,请再次调用您的路由,然后刷新进程列表,它将显示

于 2014-03-28T12:57:45.353 回答
2

我刚刚遇到了这个问题 - 您可能还想仔细检查您的主机设置并确认您实际上指向的是 localhost 而不是生产服务器。

我忘记了我被指向了一个远程服务器,因此,尽管我正在访问该站点,但它不是本地的任何东西,因此 w3wp 没有运行,尽管我表面上能够看到该站点正在运行。

于 2015-09-16T20:19:30.463 回答
2

就我而言,一旦我重建 Web 项目并提高连接超时限制(以秒为单位),它会自动显示在调试/附加到进程列表中并继续工作。

于 2019-07-16T14:10:58.310 回答
2

就我而言,我没有在管理员模式下打开 Visual Studio,这就是 w3wp.exe 没有显示在列表中的原因。

当我在管理员模式下打开 Visual Studio 时,它工作了。

右键单击 Visual Studio -> 在管理员模式下打开。

于 2017-12-21T06:16:37.087 回答
1

尝试以下步骤:

  1. 从解决方案资源管理器创建虚拟路径。

  2. 转到 inetmgr 以确认您自己的池已创建。

  3. 转到附加进程 (Ctrl+Alt+P) 并显示所有用户的进程。

  4. 然后你会看到 w3wp.exe 会在那里。

于 2017-08-03T11:20:31.920 回答
1

请注意,即使在跳过所有这些障碍之后(使用 Web 浏览器启动实例,以管理员身份启动远程调试会话,确保选中“显示所有用户”等,确保您不在服务器上农场等),您有时可能仍然不走运。

有时远程进程(在我的情况下通常是 WCF 服务)根本不会显示在要附加到的进程列表中,并且对此无能为力。我总是小心翼翼地让我的目标进程易于识别,方法是将其保存在某个应用程序池中。有时你就是无法从这里到达那里。这无疑是微软做过的远程调试最令人沮丧的事情。

于 2017-08-10T19:52:31.883 回答
1

就我而言,问题在于我没有以管理员身份运行 Visual Studio。我的机器在更新后重新启动并重新启动了所有以前运行的进程,但只在非管理员模式下重新启动了 VS。当我以管理员模式重新启动 VS 时,w3wp.exe进程再次可用于调试。

于 2017-06-27T08:01:32.950 回答
1

我也想为未来的读者分享我的经验。

请注意,如果您有Web 服务器集群配置(用于负载平衡等),该w3wp过程可能不会在您期望的同一台机器上启动。

除非您的网站配置为仅在单个 IIS 实例上运行,否则该w3wp进程可能会在您的 Web 集群内的其他机器之一上运行。

这可能是网络团队/部门的错误配置或预期行为。我没有必要的经验来准确指出它应该如何配置。

在 MSDN 上也找到了相关页面:

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

于 2016-09-30T12:14:59.880 回答
1

以管理员身份运行远程调试器。我按照每个建议来解决问题,但直到我以管理员身份运行远程调试器后,我才能够看到 w3wp 进程

于 2017-07-24T18:22:25.683 回答
1

就我而言,我需要从一个 Visual Studio 连接到从另一个 VS Studio 窗口运行的进程。
接下来是问题:以管理员权限启动了一个 VS。要解决该问题,您应该使用管理员权限启动两个 VS。

于 2017-06-06T12:46:57.667 回答
0

我的回答肯定会迟到,但也许我的回答会对某人有所帮助。

  1. 转到 IIS。
  2. 应用程序池。
  3. 提前设置。
  4. 启用 32 位应用程序。 在此处输入图像描述 使您的应用程序在启用 32.bit Application下运行。
于 2022-01-26T07:38:51.740 回答