如何调试并逐步进入COM对象

时间:2019-03-05 10:14:56

标签: c# debugging asp-classic com

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

我试图附加到进程w3wp.exe,但是它没有显示任何DLL,只是脚本代码: enter image description here

我的PDB文件与DLL放在同一文件夹中,并且我也未选中“仅我的代码”,但没有任何帮助。由于没有加载dll,所以没有符号加载我的断点不会击中

2 个答案:

答案 0 :(得分:1)

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

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

    Attach to Process Window

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

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

    Select Code Type Window

  3. 正常添加该过程。

答案 1 :(得分:0)

您是否尝试将w3wp.exe附加到C# application中?您可以打开该C# application,并确保该应用程序之外的是此处引用的DLL,并在要调试的方法上设置断点,同时附加debuggeroutput window本身可以告诉您是否已加载正确的symbols,如果显示symbols已加载,则breakpoint会命中。

尝试一下,它应该可以像我以前遇到的那样工作。

快乐的编码...