Question

i want to use ILspy debug a dll,as pic:

enter image description here

but it only can show two process:

enter image description here

but in vs2010,i can attach more process: enter image description here

how to show w3wp.exe in ILspy? who can help me?

Was it helpful?

Solution

From the ILSpy source code (ICSharpCode.ILSpy.Debugger.UI.AttachToProcessWindow):

    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.
            }
        }

Seems relatively straight forward...

It is preview software, so perhaps there is a flaw in this algorithm for determining if a process uses managed code.

You might be able to move pass this issue just by downloading the source code and changing

bool managed = false;

to

bool managed = true;

and recompiling.

I don't have the full version of IIS7 installed so I can't attempt to recreate your issue, but I doubt I would have the same problem anyways because my visual studio development server shows up fine in ILSpy while yours does not. Perhaps there is something different about your environment that messes with the above algorithm.

OTHER TIPS

Running ILSpy as an administrator solved this problem for me.

32-bit vs 64-bit might also play some role

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top