【问题标题】:Symbols not loading for remote debugging on ASP.Net app built and deployed from Azure DevOps Pipeline未加载符号以在从 Azure DevOps Pipeline 构建和部署的 ASP.Net 应用程序上进行远程调试
【发布时间】:2019-11-07 16:31:44
【问题描述】:

我有一个 ASP.Net 应用程序,其代码位于 Azure 存储库中。该项目有一个构建在主分支合并上的构建管道。然后我有一个部署管道,它采用最新的构建并通过我在我的服务器上运行的部署池在我的 Web 服务器上进行本地部署。 Web 应用程序使用 VS Build 任务构建,并使用 IIS Web App Deploy 任务进行部署。两者都工作正常。

我有一个装有 Visual Studio 的 VM,我正试图用它来远程调试 Web 服务器。我在 Web 服务器上有 VS Remote Tools,它成功运行。在我的虚拟机上,我能够打开 VS,成功地将调试器附加到 Web 服务器上的远程进程。问题是符号没有加载,我不确定这里的正确顺序是什么。

首先,Azure Pipeline 生成的构建中似乎没有任何 .pdb 文件。其次,我不确定将代码放到 VM 上进行调试的正确方法是什么(克隆 repo,vs 下载 zip 等)。第三,我尝试将 Publish Smybols 任务添加到我的部署管道,但是它生成 .pdb folders 不是文件,而且我不确定将它们放在 Web 服务器上的什么位置,或者放在虚拟机。

我的背景是经典的本地 TFS 设置,因此从 Azure DevOps 工作、构建和部署让我对如何让远程调试正常工作感到困惑。

【问题讨论】:

    标签: asp.net visual-studio debugging azure-devops remote-debugging


    【解决方案1】:

    好吧,这不适合胆小的人。我花了 3 个小时才慢慢解决这个问题——但这是值得的。很多时候,有些东西在本地工作,但是当您在远程服务器上使用 CI 触发构建代理时,您无法通过断点单步执行代码。

    所以这个信息是如果你使用上述情况 - Azure build agent and Continuous Integration。如果您使用的是Publish Profile,则不适用。

    首先要做的事...此答案中最重要的部分可以在此博客中找到:

    https://willys-cave.ghost.io/i-have-a-dream-of-a-single-build-consistent-x-and-simple/

    我已将该网址添加到archive.org 的回程机器,以防它消失。

    所以是的,问题在于 .PDB files - 需要通过在 VSO 管道中添加 Publish symbols task. 来包含它们。

    注意:我必须将BuildConfiguration 参数更改为debug(与Willy 的说明不同)。否则,当您最终开始遇到断点时,代码会被优化,您不会在悬停等处看到变量值。

    在 VS 2019 中,Willy 对Link to the symbols during remote debugging sessions 的说明需要仔细阅读。我没有。有一个更好的图像:

    https://devblogs.microsoft.com/devops/vsts-is-now-a-symbol-server/

    我在此处包含屏幕截图:

    重要的是,您需要将您的 VSTS hostname 添加到 list of Symbol Servers

    现在我的仍然没有遇到断点,我找到了这个页面(这通常是关于使用稍微不同的发布配置文件的方法),但我注意到更多的组件被加载到 IIS 中......是的!你可能也需要这些。

    https://docs.microsoft.com/en-us/visualstudio/debugger/remote-debugging-azure?view=vs-2019

    所以我将在这里粘贴最重要的图像:

    您需要将IIS Management Scripts and Tools 添加到您的 IIS 安装中。

    应该这样做。此外,我以管理员身份运行我的远程调试器,将其附加到 w3wp.exe(显示所有用户进程),如果它没有出现 - 重新加载远程页面并刷新,就好像池进入睡眠状态一样,你将看不到它列表

    祝你好运!

    【讨论】:

      猜你喜欢
      • 2022-08-07
      • 1970-01-01
      • 2011-06-12
      • 2017-08-13
      • 1970-01-01
      • 2020-09-14
      • 2022-07-20
      • 2017-11-25
      • 2015-01-27
      相关资源
      最近更新 更多