我有一个部署到Azure的ASP.NET网站。我使用的是VS 2013、.NET 4.5.1和Azure SDK 2.2。我在管理门户中打开了VS 2013的远程调试。我可以成功地右键单击服务器中“Azure”节点下的网站,并选择“附加调试器”。它显示正在下载调试设置。然后网页浏览器就出现了。2但是断点从来没有被点击过,尽管我知道它们是在代码中被执行的。3一个线索:断点有一个空心圆,并声明:“当前不会命中断点。没有为此文档加载任何符号。”但在本地测试时断点工作正常。有人对如何解决此问题有什么想法吗?
谢谢你...
- 本
更新:我从.NET 4. 5. 1降到了4. 5;问题仍然存在。
7条答案
按热度按时间ndh0cuux1#
我也在这个问题上挣扎(VS2015 Enterprise),但找到了一个工作相当一致的解决方案。
这对我来说几乎每次都有效。注意,在Visual Studio中从W/停止和启动Web应用程序并不一致。
tzdcorbm2#
请确保将调试版本发布到特定部署槽。我遇到了同样的问题,当我将远程调试器附加到部署了调试版本的暂存槽时,调试成功了。尝试调试发布版本不起作用,因为缺少必需的调试符号。与@Lars上面解释的一样,我必须在Azure上重新启动Web应用,然后针对调试版本再次尝试调试。
e5njpo683#
我写了一篇简短的文章,帮助我调试。Debugging in Azure Cloud
简而言之:为工作者角色和Web角色查找要附加到的正确进程。WebRole:WaIISHost.exe、w3wp.exe +合并主机工作者角色:WaWorkerHost.exe +合并主机
fxnxkyjh4#
经过几个小时的努力,我找到了一个一致的解决方案。我认为根本原因只是一个混乱的UI。试试这个:
1.确保Web作业正在运行
1.在云资源管理器中点击WebJob名称,然后等待。大约15秒后,“Attach Debugger”将神奇地出现在下方的操作区域。似乎当您点击WebJob名称时,VS 2017必须在Azure中远程查询WebJob以确定它是否正在运行以及是否可以执行远程调试。这需要时间。如果两个问题的答案都是“是”,那么“附加调试器”将出现在UI中。
63lcw9qa5#
我遇到过几次这个问题。
我通过确保发布配置文件的平台/配置与本地构建平台/配置相匹配来修复它。
我正在发布Debug|任何CPU,但我的本地版本使用调试|混合平台。
将发布配置更改为“调试”后|混合平台和重新发布,我能够附加远程调试器和符号被加载。
通过在Visual Studio“模块”窗口中查找命名空间/程序集名称,验证是否已为您试图在其中设置断点的程序集加载符号。(这是在将调试器附加到远程进程并且VS处于调试模式之后进行的。)
在我这样做之后,断点开始从本地VS示例中为远程进程工作。
g9icjywg6#
针对VS 2022:
需要注意几件事。首先需要转到您的应用服务并启用调试:
然后需要取消选中VS:调试-〉选项
最后使用w3wp.exe连接到websiteurl.azurewebsites.net
7vhp5slm7#
我在一个.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中的进程,而不是依赖于云资源管理器的右键单击功能。