【问题标题】:Cannot attach debugger to w3wp无法将调试器附加到 w3wp
【发布时间】:2011-05-17 19:49:18
【问题描述】:

我正在调试一个ASP.NET 应用程序,但有时在Visual Studio 进程列表(菜单:Debug -> Attach to Process...)和task manager 中都找不到w3wp。我选择了“Show processes from all users”和“Show processes in all sessions”复选框。当从localhost 运行项目时,在发生未经处理的异常后,调试器将附加到 w3wp(我来不及进入代码)!

为什么我有时看不到 w3wp?

Windows Server 2008 Enterprise Edition 64-bit, Visual Studio 2010

【问题讨论】:

    标签: .net debugging w3wp


    【解决方案1】:

    当你重置 IIS 或 IIS 没有运行时,你需要调用服务器,当你第一次点击服务器时 w3wp 进程启动。

    【讨论】:

    • 是的,调用 localhost 解决了这个问题。发生这种情况是因为我将主页从 localhost 更改为 Google!
    • 只要点击您服务器托管的网站上的任何页面,w3wp.exe(IIS 应用程序池工作进程)就会启动。
    • 它有效!打开网页后附加到进程。不是以前!
    • 我知道这个答案是几年前发布的,但如果我可以投票两次或更多次,我会:)
    • 我非常同意 Eytch。 :) 无论如何,非常感谢您的回答。
    【解决方案2】:

    同样的事情也发生在我身上。更新后我找不到 W3WP!我意识到它没有显示所有的过程。需要选中“显示所有用户的进程”复选框。

    【讨论】:

      【解决方案3】:

      当我想起 IIS 有空闲超时时,我也发生了同样的事情!如上 proc w3wp 正在运行,但是 VS2010 在睡眠状态下查看它并认为它没有运行,所以不要在列表中显示它...

      启动 IIS [在您最喜欢的 Web 浏览器中调用从 locahost 提供的站点] 重新激活 IIS,突然 VS 现在也可以看到进程 [w3wp]

      注意 - 必须让 MS 忽略 IIS/w3wp 的睡眠状态,如果它处于睡眠模式 - 让它自动唤醒!

      谢谢

      【讨论】:

      • 致任何阅读此答案的人... IIS 没有“睡眠状态”。 w3wp 进程消失了。需要时启动一个新的 w3wp 进程。
      【解决方案4】:

      在 Visual Studio 中调试 WCF 服务时快速解决此问题:

      1. 弹出打开客户端应用的 web.config 文件。

      2. 查找未出现在 Attach To Process 中的服务的端点条目。

      3. 在端点 url 上按 Ctrl+单击,以便它在 Visual Studio 的内部浏览器中加载服务窗口。

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

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

      【讨论】:

      • 在您的解决方案中,第 3 项完成了已确认答案所说的工作。与MS-Word 中的localhost 链接上的CRTL+Click 相同。
      • 同意,@Xaqron。我发布这些步骤的原因是提供一个快速的解决方案,使用在当前项目中易于访问的文件 (web.config)。
      • 好的,我知道这个问题很古老,但我希望有人能回来帮助我。我不明白第 2 步。我在 web.config 中寻找什么?对我来说,w3wp.exe 没有出现在附加到进程中。我会寻找什么端点?
      • 好的,为了更清楚一点,您打开的不是服务的 web.config 文件 - 您打开的是调用您的服务的应用程序的 web.config .在该 web.config 中找到您的服务的端点,然后 ctrl+单击它(应该会弹出 Visual Studio 浏览器)以激活它。然后,切换回您的服务项目,打开“附加到进程”对话框,单击“显示所有用户的进程”复选框,您应该会在列表中看到 w3wp.exe。
      【解决方案5】:

      我也遇到了同样的问题。只需再次构建项目。然后它会在附加进程列表中显示 w3wp.exe。

      【讨论】:

        【解决方案6】:

        此外,当附加到进程窗口在左下角打开时,有一个复选框“显示所有用户的进程”,确保选中此复选框,然后它将显示。您可能还需要以管理员身份运行 Visual Studio。希望这可以帮助。

        【讨论】:

          【解决方案7】:

          确保您以管理员身份运行 VS。

          【讨论】:

            【解决方案8】:

            仔细查看您正在调试的页面的 URL,以防它更改为不同的服务器 - 这可能很少发生但发生在我身上。这属于“检查您的假设”类别。

            【讨论】:

              【解决方案9】:

              我不知道,但似乎有一个额外的应用程序与我正在使用的应用程序池相关联。尝试创建一个新的应用程序池并将您的应用程序指向新创建的应用程序池。仔细检查您的新应用程序池中只有 1 个应用程序。

              【讨论】:

                猜你喜欢
                • 2019-03-26
                • 1970-01-01
                • 2018-09-05
                • 1970-01-01
                • 2017-08-07
                • 1970-01-01
                • 2020-04-17
                • 2018-05-01
                相关资源
                最近更新 更多