W3WP进程未找到。

132

我使用 Visual Studio 2010 在本机调试一个 asp.net MVC 项目,步骤如下:

点击“Debug”并尝试附加进程"w3wp.exe"。但是它没有出现在列表中。

我确定已经勾选了“显示所有会话中的进程”。


如果找不到w3wp.exe,则表示IIS当前未运行。请确保已启动IIS管理服务、WWW服务、应用程序池以及IIS网站本身。 - Joel Etherton
你是使用 本地 IIS (w3wp.exe) 还是 VS 开发服务器 (WebDev.WebServer40.exe)?请在项目属性 -> Web 选项卡下查看。 - SliverNinja - MSFT
10
你尝试过勾选“显示所有用户的进程”选项吗? - Irvin Dominin
你的意思是去控制面板然后启动IIS吗?我找不到它。 - user1108948
6
TL;DR: w3wp 进程睡眠,刷新浏览器页面唤醒它,然后它应该出现在列表中。 - Ruskin
显示剩余3条评论
20个回答

222

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

尝试先访问您的网页,在第一次显示时,尝试附加调试器。此时进程应该会显示出来。


4
如果你已经很久没有刷新页面了,那么该进程可能处于休眠状态。通过刷新来唤醒它。 - Ruskin
1
是的,在您尝试附加到进程时,该站点应该已经在运行。它不必在同一台服务器上。 - Hash
10
请注意,在Windows8和7中,您需要以管理员身份运行VS。 - Samih A
1
除了这部分之外,其他都没问题。我不知道这个进程不是持续运行的。 - tinonetic
更好的是,对于您的每个应用程序池,这是一个不同的过程。 - Yan Brunet
显示剩余4条评论

107
您需要在任务管理器列表底部点击“显示所有用户的进程”。这就是我需要做的。

1
这解决了我的问题。原因是在IIS中,该进程运行在应用程序池下,而不是我的当前用户下。 - L_7337
完美,如果你正在Windows 7上工作,这就是答案。 - fizmhd

17
  1. 重新启动IIS
  2. 右击您的站点 >> 管理网站 >> 浏览
  3. 返回到Visual Studio刷新进程列表

1
根据网站而定,它可能是“管理网站”或“管理应用程序”。两者都会启动w3wp.exe进程。 - Milton
1
我甚至不需要重启 IIS……我只需按照步骤 2 和 3 进行操作,它就起作用了。 :) 可能列表还没有刷新。 - thecoolmacdude

10

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


9
当 w3wp 不在列表中时,一个简单的有效方法是打开浏览器并输入 localhost,然后按回车键。在此之后,w3wp 将出现在列表中。

运行得非常好! - JowieXiang
这是一个不错的小技巧!! - Rukshan Dangalla

3

即使IIS应用程序池已经启动,也可能没有正在运行的IIS工作进程w3wp。只有在收到第一个Web请求后,IIS才会启动工作进程。

在我的情况下,我首先启动了应用程序,仍然找不到w3wp.exe。然后我从(IIS->Worker Process -> Process Id)中获取了工作进程ID,然后在详细信息选项卡中通过ID搜索并找到了它。


3
  1. 清空解决方案
  2. 重新构建解决方案
  3. 在命令提示符中输入命令 iisreset 以重置IIS
  4. 进入IIS并浏览您的网站
  5. 以管理员身份运行VS
  6. 工具 -> 附加到进程 -> 确保勾选了'显示所有用户的进程'复选框 -> w3wp.exe
  7. 附加到w3wp.exe进程

2
在我的情况下,一旦我重建了Web项目并提高了连接超时限制(以秒为单位),它就会自动显示在Debug / Attach to Process列表中并保持工作状态。"最初的回答"。

2
如果您正在使用类似于高级REST客户端之类的工具来测试路由,请再次调用您的路由,然后刷新进程列表,它就会显示出来。

2

我的答案可能来晚了,但也许我的答案能帮助到其他人。

  1. 进入IIS。
  2. 应用程序池。
  3. 高级设置。
  4. 启用32位应用程序。 输入图像描述 使你的应用程序在启用32位应用程序下运行。

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