我想用ILspy调试一个动态链接库,如图:

但它只能显示两个进程:

但是在vs2010中,我可以附加更多的进程:

如何在ILspy中显示w3wp.exe?有谁能帮帮我呢?
发布于 2012-04-22 12:21:31
从(ICSharpCode.ILSpy.Debugger.UI.AttachToProcessWindow):的ILSpy源代码
Process currentProcess = Process.GetCurrentProcess();
foreach (Process process in Process.GetProcesses()) {
try {
if (process.HasExited) continue;
// Prevent attaching to our own process.
if (currentProcess.Id != process.Id) {
bool managed = false;
try {
var modules = process.Modules.Cast<ProcessModule>().Where(
m => m.ModuleName.StartsWith("mscor", StringComparison.OrdinalIgnoreCase));
managed = modules.Count() > 0;
} catch { }
if (managed) {
list.Add(new RunningProcess {
ProcessId = process.Id,
ProcessName = Path.GetFileName(process.MainModule.FileName),
FileName = process.MainModule.FileName,
WindowTitle = process.MainWindowTitle,
Managed = "Managed",
Process = process
});
}
}
} catch (Win32Exception) {
// Do nothing.
}
}看起来相对简单...
它是预览软件,因此在确定进程是否使用托管代码时,此算法可能存在缺陷。
您可以通过下载源代码并更改代码来解决此问题
bool managed = false;
至
bool managed = true;
和重新编译。
我没有安装IIS7的完整版本,所以我无法尝试重现您的问题,但我怀疑我是否会遇到同样的问题,因为我的visual studio开发服务器在ILSpy中显示良好,而您的却不能。也许你的环境中有一些不同的东西扰乱了上面的算法。
发布于 2013-02-21 05:55:05
以管理员身份运行ILSpy为我解决了这个问题。
发布于 2012-05-08 03:49:28
32位vs 64位也可能起到一定的作用
https://stackoverflow.com/questions/10184935
复制相似问题