远程调试Azure网站:未点击断点

时间:2014-03-19 16:16:20

标签: asp.net debugging azure

我有一个部署到Azure的ASP.NET网站。我正在使用VS2013,.NET 4.5.1和Azure SDK 2.2。我在管理门户中打开了VS2013的远程调试。我可以成功右键单击服务器中“Azure”节点下的网站,然后选择“附加调试器”。它说它正在下载调试设置,然后Web浏览器出现。但是断点永远不会被击中,尽管它们处于我知道执行的代码中。一条线索:断点有一个空心圆圈,并指出:“断点当前不会被命中。此文档没有加载任何符号。”但是在本地测试时,断点工作正常。有没有人对如何解决这个问题有任何想法?

...谢谢

-Ben

更新:我从.NET 4.5.1下降到4.5;问题仍然存在。

6 个答案:

答案 0 :(得分:5)

我也很挣扎(VS2015 Enterprise),但找到了一个非常一致的解决方案。

  • 确保您未附加到网络应用
  • 打开Web应用程序的Azure门户
  • 停止网络应用
  • 重新启动网络应用
  • 给它一点热身,然后回到VS并重新连接

这几乎每次都适合我。请注意,在Visual Studio中从w /停止和启动Web应用程序不能始终如一地工作。

答案 1 :(得分:4)

确保将调试版本发布到特定部署插槽。我有同样的问题,当我将远程调试器连接到我的部署调试版本的暂存插槽时,它工作正常。尝试调试发布版本不起作用,因为不存在必需的调试符号。就像@Lars上面解释的那样,我不得不重新启动Azure上的Web应用程序,然后再针对调试版本再次尝试调试。

答案 2 :(得分:3)

我写了一篇简短的文章,帮助我调试。 看看这里:Debugging in Azure Cloud

简而言之:找到附加到worker角色和Web角色的正确进程。 WebRole:WaIISHost.exe,w3wp.exe + conhost(s) WorkerRole:WaWorkerHost.exe + conhost(s)

答案 3 :(得分:1)

经过数小时的努力,我找到了一个一致的解决方案。我认为根本原因仅仅是一个令人困惑的UI。试试这个:

  1. 确保您的Web作业正在运行
  2. VS 2017->视图-> Cloud Explorer
  3. 在Cloud Explorer中单击WebJob名称,然后只需等待。 15秒左右后,“附加调试器” 将神奇地出现在下面的操作区域中。看来,当您单击WebJob名称时,VS2017必须在Azure中远程查询WebJob ,以确定它是否正在运行以及是否可以执行远程调试,这需要时间。如果两个答案均为“是”,则UI中将显示“附加调试器”。

enter image description here

答案 4 :(得分:0)

我几次遇到这个问题。

通过确保发布配置文件的平台/配置与本地构建平台/配置相匹配来解决此问题。

我正在发布Debug |任何CPU,但我的本地版本使用Debug |混合平台。

将发布配置更改为Debug |混合平台并重新发布,我能够附加远程调试器并加载了符号。

通过在Visual Studio的“模块”窗口中查找名称空间/程序集名称,验证是否为尝试设置断点的程序集加载了符号。 (这是在将调试器附加到远程进程之后,并且您的VS处于“调试”模式。)

完成此操作后,断点开始从本地VS实例内部为远程进程工作。

答案 5 :(得分:-1)

.Net Core Azure Function项目遇到此问题。以下github问题可以说明问题,但是解决方案无法解决我的问题:

https://github.com/Azure/Azure-Functions/issues/872

我终于在这里偶然发现了答案:

http://dontcodetired.com/blog/post/Remote-Debugging-Azure-Functions-V2-The-breakpoint-will-not-currently-be-hit-No-symbols-have-been-loaded-for-this-document

它归结为在Azure中手动附加到流程,而不是依靠Cloud Explorer的右键单击功能。