【问题标题】:No symbols when attaching debugger to manually launched IISExpress instance将调试器附加到手动启动的 IISExpress 实例时没有符号
【发布时间】:2017-01-23 15:31:42
【问题描述】:

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

服务正在运行。我添加了一些跟踪来验证我的本地组件是否正在由服务运行。我就是无法达到断点。

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 很高兴知道您已经解决了这个问题,如果解决了,请将其标记为答案,这样可以帮助其他社区成员。祝你有美好的一天:)
    猜你喜欢
    • 2017-11-07
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多