Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 远程调试Azure网站:未命中断点_Asp.net_Debugging_Azure - Fatal编程技术网

Asp.net 远程调试Azure网站:未命中断点

Asp.net 远程调试Azure网站:未命中断点,asp.net,debugging,azure,Asp.net,Debugging,Azure,我已经在Azure上部署了一个ASP.NET网站。我正在使用VS2013、.NET4.5.1和Azure SDK 2.2。我在管理门户中打开了VS2013的远程调试。我可以成功右键单击服务器中“Azure”节点下的网站,然后选择“附加调试器”。它表示正在下载调试设置,然后web浏览器出现。但断点永远不会被命中,尽管它们存在于我知道已执行的代码中。一条线索:断点有一个开放的圆圈,表示:“当前不会命中断点。没有为此文档加载任何符号。”但在本地测试时,断点工作正常。有人对如何解决这个问题有什么想法吗

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

谢谢

-本


更新:我从.NET4.5.1降到了4.5;问题依然存在。

我写了一篇短文,帮助我进行调试。 请看这里:

简而言之:为worker角色和web角色找到要附加到的正确进程。 WebRole:WaIISHost.exe、w3wp.exe+conhost
WorkerRole:WaWorkerHost.exe+conhost

我也在努力解决这个问题(VS2015 Enterprise),但找到了一个非常一致的解决方案

  • 确保您没有连接到web应用
  • 打开web应用程序的Azure门户
  • 停止web应用程序
  • 重新启动web应用程序
  • 给它一秒钟热身,然后返回VS并重新连接

我几乎每次都这样。请注意,在Visual Studio中从w/停止和启动web应用程序并不一致

确保将调试生成发布到特定的部署插槽。我也遇到了同样的问题,当我将远程调试器连接到部署了调试构建的暂存槽时,它工作了。尝试调试发布版本不起作用,因为不存在必需的调试符号。正如上面@Lars所解释的,我必须在Azure上重新启动web应用程序,然后针对调试版本再次尝试调试。

我在.Net核心Azure功能项目中遇到了这个问题。以下github问题说明了这一点,但解决方案并没有解决我的问题:

我终于在这里找到了答案:


它归结为在Azure中手动附加到进程,而不是依赖云资源管理器的右键单击功能。

经过几个小时的努力,我找到了一个一致的解决方案。我认为根本原因就是用户界面混乱。试试这个:

  • 确保您的Web作业正在运行
  • VS 2017->查看->云资源管理器
  • 单击云资源管理器中的WebJob名称,然后只需等待。大约15秒后,“附加调试器”将神奇地出现在下面的操作区域中。似乎当您单击WebJob名称时,VS2017必须在Azure中远程查询WebJob,以确定它是否正在运行以及是否可以执行远程调试,这需要时间。如果两者的答案都是“是”,则“附加调试器”将出现在UI中

  • 我曾多次遇到过这个问题

    我通过确保发布配置文件的平台/配置与本地构建平台/配置相匹配来修复它

    我发布的是Debug | Any CPU,但我的本地构建使用的是Debug |混合平台

    一旦我将发布配置更改为Debug | Mixed Platforms并重新发布,我就能够连接远程调试器并加载符号

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


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

    请参阅以下答案:谢谢!那条线有解决办法。应该注意的是,即使我没有使用GIT deploy,我也遇到了这个问题,所以这个线程对其他人可能仍然有价值。这个问题对我来说并没有解决。另一个线程唯一相关的解决方案是[只关闭代码调试],但我已经这样做了。