将调试器附加到手动启动的IISExpress实例

时间:2017-01-23 15:31:43

标签: asp.net debugging iis-express visual-studio-debugging

我有一个场景,我想通过IISExpress通过命令行启动本地托管服务,然后使用Visual Studio进行调试。当我将调试器附加到IISExpress进程时,问题出现了,因为它似乎没有从我的服务组件加载符号。

该服务正常运作。我添加了一些跟踪来验证服务是否正在运行我的本地组件。我只是无法达到突破点。

有关我的情况的一些信息:

  • 这是Visual Studio 2015。
  • 我正在使用IISExpress.exe中的/ path选项,可以使用最少的配置启动。
  • 这是一个ASP.NET Web Api应用程序。
  • 有时当调试器附加它时会显示底层依赖项(我的程序集),但我无法从它们加载符号,因为VS无法识别我在光盘上的.pdb。
  • 我找到了我的服务和Visual Studio设置的服务的application.config文件。这些文件的配置不同,但它们看起来并没有什么不同。
  • 大多数服务的组件都是发布版本,并且没有符号部署。一个程序集是一个调试版本,并且包含符号。
  • 编译标签的debug属性似乎对我的调试能力没有影响。

这里的想法是能够使用测试工具从我们的构建管道中提取构建,并从本地开发项目中加载组件。

1 个答案:

答案 0 :(得分:1)

我仔细看了一下Debug后发现了这个问题 - >进程面板。事实证明,当最初启动IISExpress时,它默认选择Native调试器而不是Managed(4.6,4.5,4.0)调试器。

我安装并使用EnvDTE80来选择我想要附加的调试引擎,一切都像魅力一样!