在调试模式下启动工作进程(w3wp.exe)是啥意思?

Posted

技术标签:

【中文标题】在调试模式下启动工作进程(w3wp.exe)是啥意思?【英文标题】:What does it mean start a worker process (w3wp.exe) in debug mode?在调试模式下启动工作进程(w3wp.exe)是什么意思? 【发布时间】:2014-08-11 08:29:11 【问题描述】:

所有,根据WAS。文档说工作进程由 WAS 管理。

但是我在输入w3wp /?时发现有一个调试标志。

-debug 
   This option launches a worker process using the default 
   application host config file.  By default, it will use 
   site id 1. 

在调试模式下启动工作进程是什么意思?在什么情况下我们要使用调试选项启动工作流程?谢谢。

已添加

我不知道为什么运行w3wp.exe -debug时出现异常。

错误:处理此命令期间出现错误。 请检查事件日志,看看是否有任何错误或警告 记录。

当我检查日志时。它看起来像:

万维网发布服务未能设置应用程序 站点“1”中应用程序“/xxxx”的池。数据字段包含 错误号。

【问题讨论】:

我的猜测是只调试 w3wp.exe 本身的代码(不是它所托管的)是/否。 @MarvinSmit 感谢您的回复。你的意思是调试 w3wp.exe 本机代码? 是的。 Microsofties 在 W3WP.exe 进程上使用 WinDbg。也许它可以在调试时进行内存转储。或者当调试关闭时,它只是另一个额外的“尝试/捕获”? 其实我在看Open Cover的教程。在run against with IIS part 中。它应该添加调试选项。我只是不明白它是做什么用的。所以我在这里发布一个问题。我用关键字 w3wp.exe debug option 谷歌搜索。到目前为止没有得到我希望的结果。 而且我知道 WinDbg 可以使用本机代码 (c++) 进行调试。但是如果WinDbg 需要调试 w3wp 。有必要以-debug开头吗? 【参考方案1】:

根据http://support.microsoft.com/kb/183480,它会切换运行用户的安全上下文,这不是其正常的操作模式——我想这会使附加调试器和其他实用程序更容易。

【讨论】:

++1 感谢您审阅我的问题。非常感谢作者可以帮助审阅 SO 中的问题。我只是想知道为什么OpenCover 需要在调试模式下启动 w3wp。我原以为所有的调试和代码信息都可以在 .net 汇编的 PDB 文件中找到。这样对吗 ?谢谢。 OpenCover 是一种用于测试实用程序(例如 nunit 和 mstest)的工具,但它可以用于其他进程(尽管我个人不同意以这种方式使用它,但我知道有些人没有其他追索权)。对于 OpenCover 和目标进程使用事件和共享内存块进行通信,它们需要具有相同的权限(这可能非常棘手) - 通过在调试中运行 w3wp,它不会在与用户相同的上下文中运行,并且这权限不是问题。它还阻止人们尝试在生产系统中执行此操作 - 这是 IMO 的一大禁忌。

以上是关于在调试模式下启动工作进程(w3wp.exe)是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

在vs 调试进程中找不到 w3wp.exe 进程

什么是 w3wp.exe?

w3wp.exe 如何与 Web 应用程序一起工作?

ABP框架 - 介绍 VS2017调试器无法附加到IIS进程(w3wp.exe) c# 动态实例化一个泛型类

应用程序池及w3wp.exe的藕断丝连

Visual studio 附加进程调试