我正在尝试使用 Visual Studio 2010 中的功能,该功能允许用户附加到正在运行的进程以进行调试。我正在附加到 w3wp.exe 进程。这是我的问题:如果我附加到 DefaultAppPool,我的断点不能被命中(“断点当前不会被命中。没有为此文档加载任何符号”)。但是,如果我使用 Classic .NET App Pool 进行连接,那么我的断点就可以工作(至少,他们做了一个)。
我的问题是 Classic .NET App Pool 并不总是作为“附加到进程”对话框中的选项列出。我已经通过转到我机器上的 IIS (7) 并检查应用程序池来验证两个应用程序池都在运行。我还尝试将“附加到:”设置从“托管(v4.0)代码”更改为“托管(v2.0、v1.1、v1.0)代码”。它似乎没有什么区别(每次更改后我都会刷新列表)。
谁能解释为什么经典应用程序池有时但并非总是出现在“附加到进程”列表中?
这一切都是因为我一直无法让应用程序在 Visual Studio 中正常调试。(请参阅此线程)我工作了几天试图解决“没有加载符号”错误。但是,我注意到当我的同事在他的机器上调试应用程序时(它适用于他),他在调试 >> Windows >> 模块中有很多“无法找到或打开 PDB 文件”错误,但是他的断点仍然有效。所以,我认为这不是问题。
一注。我的同事在使用 IIS 7 时使用的是 IIS 6。我认为这就是类应用程序池为我短暂工作的原因。现在,如果我能以某种方式再次附加到它...