由于缺少w3wp,无法远程调试GRPC服务(.net5 [英] grpc service (.net5) can not be remote debugged due to missing w3wp

查看:32
本文介绍了由于缺少w3wp,无法远程调试GRPC服务(.net5的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在接触GRPC,在调试它时遇到一些问题,如下所示:

我有一个包含多个项目的解决方案,相关的一个是安装了包的.NET5: Nugets

所以它甚至引用了我的DBContext所在的另一个项目(.NET Standard 2.1),但我想这并不相关。

该项目几乎是模板化的项目,在我看来运行起来没有任何问题!这意味着我可以在本地计算机上启动和调试它。

现在我想将它部署到我的Azure应用程序服务中,在那里我保存了一个连接字符串,或者更好地说,是对居住在密钥库中的这个字符串的引用。我可以毫无问题地进行部署,它会运行,显示带有模板化响应的页面:与GRPC端点的通信必须通过GRPC客户端进行。要了解如何创建客户端,请访问:https://go.microsoft.com/fwlink/?linkid=2086909"

我不能做的事,但我真的想做的是远程调试这个项目!我做了什么:

正如我所说:它正在运行,并在部署和启动应用程序服务后显示响应...而且它在本地工作!

Azure服务配置了HTTP2,允许远程调试,My VS 2019版本作为IDE。出现此错误后,应用程序服务仍在运行。我是不是错过了服务端的某些配置?

非常感谢!

推荐答案

在Visual Studio中有两种运行调试器的方法:

  1. 调试菜单-带有一些出站端口设置:谢谢您Alex AIT,将您的评论发布为answer

  2. 来自云资源管理器 如果您想使用云资源管理器,请尝试以下步骤。

您需要执行以下步骤(简要):

  • 将Web App部署到Azure平台
  • 将远程调试器附加到Web应用程序
  • 确认远程调试器已附加到W3WP进程
  • 设置断点
  • 执行呈现异常的进程,执行缓慢或以意外方式执行
  • 调试其他技术

详细:

将远程调试器附加到Web应用程序

在Visual Studio中打开云资源管理器,展开Web应用程序,右键单击要附加到的Web应用程序,然后单击附加调试器。(您可以下载云资源管理器here或通过选择工具-&>扩展和更新…从Visual Studio中安装云资源管理器,然后搜索云资源管理器。)

将远程调试器附加到Microsoft Azure应用程序服务Web应用程序
如果您尚未启用远程调试应用程序设置,则将在您首次附加调试器时为您启用远程调试应用程序设置。

如果您的Web应用程序使用基于IP的SSL证书,您可能会得到此例外:System.Runtime.InteropServices.COMException (0x89710023) 在这里,您需要做的是获取kudu控制台的IP地址,我对here进行了描述,并将该IP地址用于您正在远程调试的*.azurewebsites.net主机名,方法是将IP主机名组合添加到主机文件中。

确认远程调试器已附加到W3WP进程

在浏览器中打开Web应用程序后,返回到Visual Studio并单击调试->附加到Process…。然后从限定符下拉列表中选择要调试到的Web应用程序

请注意,您可以在可用进程列表中将W3WP进程的ID与在kudu的进程资源管理器中看到的W3WP进程的ID进行比较

确认后,继续并开始调试。

设置断点

将调试器附加到Web应用程序时,它将在您的浏览器中打开Web应用程序。使浏览器保持打开状态,但将焦点更改为Visual Studio并设置断点,就像在本地调试时一样。

  • 调试必须=True
  • 远程调试需要符号,而ASP.NET网站没有符号,它们只存在于ASP.NET项目中,因此,如果在设置断点时出现此错误,您将无法远程调试:*"当前不会命中断点。尚未加载此文档的符号。"*(远程调试时未命中调试断点)。

这篇关于由于缺少w3wp,无法远程调试GRPC服务(.net5的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆