如何调试和进入 COM 对象

How to debug and step into a COM object

我在 IIS 上有一个经典的 ASP 网站 运行。该站点使用一些 COM 对象(通过 VBScript CreateObject),它们实际上是用 C# 编写的 .DLL。所以问题是如何在 Visual Studio 2017 中调试 C# 代码?

我试图附加到进程 w3wp.exe,但它没有显示任何 DLL,仅显示脚本代码:

我的 PDB 文件与 DLL 放在同一文件夹中,我也未选中 "Just my code",但没有任何帮助。由于没有加载 dll,没有加载符号我的断点没有命中

您是否尝试在 C# application 中附加 w3wp.exe?您可以打开 C# application 并确保在该应用程序之外是那里引用的 DLL 并在您要调试的方法上放置断点,同时附加 debuggeroutput window本身可以告诉你是否加载了正确的symbols,如果它说symbols加载了那么breakpoint就会命中。

试一试它应该可以正常工作,因为我以前遇到过这个问题。

编码愉快...

如果您将调试器附加到经典 ASP Web 应用程序,您需要确保告诉它您也想调试托管代码。

  1. Attach to Process window 之前 select 要附加到的进程中,找到 Select... 右侧的选项 Attach to:标签;

    这将打开 Select Code Type window,您可以在其中 select 要附加的代码类型调试器。

  2. Select 列出的代码类型中的多种代码类型,特别是适合您要调试的 .Net COM DLL 编译的 .Net Managed 版本。

  3. 正常附加到进程。