如何调试和进入 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
并在您要调试的方法上放置断点,同时附加 debugger
, output window
本身可以告诉你是否加载了正确的symbols
,如果它说symbols
加载了那么breakpoint
就会命中。
试一试它应该可以正常工作,因为我以前遇到过这个问题。
编码愉快...
如果您将调试器附加到经典 ASP Web 应用程序,您需要确保告诉它您也想调试托管代码。
在 Attach to Process
window 之前 select 要附加到的进程中,找到 Select...
右侧的选项 Attach to:
标签;
这将打开 Select Code Type
window,您可以在其中 select 要附加的代码类型调试器。
Select 列出的代码类型中的多种代码类型,特别是适合您要调试的 .Net COM DLL 编译的 .Net Managed
版本。
正常附加到进程。
我在 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
并在您要调试的方法上放置断点,同时附加 debugger
, output window
本身可以告诉你是否加载了正确的symbols
,如果它说symbols
加载了那么breakpoint
就会命中。
试一试它应该可以正常工作,因为我以前遇到过这个问题。
编码愉快...
如果您将调试器附加到经典 ASP Web 应用程序,您需要确保告诉它您也想调试托管代码。
在
Attach to Process
window 之前 select 要附加到的进程中,找到Select...
右侧的选项Attach to:
标签;这将打开
Select Code Type
window,您可以在其中 select 要附加的代码类型调试器。Select 列出的代码类型中的多种代码类型,特别是适合您要调试的 .Net COM DLL 编译的 .Net
Managed
版本。正常附加到进程。