【问题标题】:w3wp process not found未找到 w3wp 进程
【发布时间】:2012-11-07 20:38:09
【问题描述】:

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

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

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

【问题讨论】:

  • 如果找不到 w3wp.exe,则 IIS 当前未运行。确保 IIS Admin 服务已启动,WWW 服务已启动,应用程序池已启动,IIS 网站本身已启动。
  • 您使用的是 本地 IIS (w3wp.exe) 还是 VS 开发服务器 (WebDev.WebServer40.exe )?检查您的项目属性 -> Web 选项卡。
  • 您是否尝试过检查“显示所有用户的进程”选项?
  • 您的意思是转到控制面板然后启动 IIS 吗?我找不到它。
  • 回答stackoverflow.com/questions/4313206/… tl;博士? w3wp 进程休眠,因此在浏览器中刷新页面以唤醒它,它现在应该出现在列表中。

标签: asp.net-mvc windows visual-studio-2010 iis process


【解决方案1】:
  1. 清除解决方案
  2. 重建解决方案
  3. 通过在命令提示符中写入命令 iisreset 来重置 IIS
  4. 转到 IIS 并浏览您的网站
  5. 以管理员身份运行 VS
  6. 工具 -> 附加到进程 -> 确保 “为所有用户显示进程” 复选框被
    选中 -> w3wp.exe
  7. 附加到 w3wp.exec

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

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

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

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

            【讨论】:

              【解决方案7】:

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

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

              【讨论】:

                【解决方案8】:

                尝试以下步骤:

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

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

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

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

                【讨论】:

                  【解决方案9】:

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

                  【讨论】:

                    【解决方案10】:

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

                    【讨论】:

                      【解决方案11】:

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

                      【讨论】:

                        【解决方案12】:

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

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

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

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

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

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

                        【讨论】:

                          【解决方案13】:

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

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

                          【讨论】:

                            【解决方案14】:
                            1. 重启 IIS
                            2. 右击您的网站>>管理网站>>浏览
                            3. 返回 Visual Studio 刷新进程列表

                            【讨论】:

                            • 取决于站点,它可以是管理网站或管理应用程序。两者都将启动 w3wp.exe 进程。
                            • 我什至不必重新启动 IIS...我只是按照第 2 步和第 3 步操作就可以了。 :) 也许列表没有被刷新。
                            【解决方案15】:

                            GoTo Web 项目属性 -> 选择左侧边栏上的 (Web) -> GoTo 在 (Servers) 标题下 -> 点击下拉并选择 "Local IIS"

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

                            【讨论】:

                              【解决方案16】:

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

                              【讨论】:

                                【解决方案17】:

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

                                【讨论】:

                                • 这解决了我的问题。原因是在 IIS 中,该进程在应用程序池下运行,而不是我当前的用户。
                                • 完美的答案,如果你在 Windows 7 上工作
                                【解决方案18】:

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

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

                                【讨论】:

                                • 如果您刷新页面已经有一段时间了,该进程可能正在休眠。通过刷新唤醒它。
                                • 是的,在您尝试附加到该进程时,该站点应该已经在运行。它不必在同一台服务器上。
                                • 注意,在Windows8和7中,需要以管理员身份运行VS
                                • 一切正常,除了这一部分。不知道该过程没有连续运行
                                • 更好的是,对于每个应用程序池来说,这是一个不同的过程。
                                猜你喜欢
                                • 2011-12-11
                                • 2011-01-26
                                • 1970-01-01
                                • 1970-01-01
                                • 2015-10-29
                                • 1970-01-01
                                • 2011-07-15
                                • 1970-01-01
                                • 1970-01-01
                                相关资源
                                最近更新 更多