在 .NET 应用中调试和监控 gRPC 组件
1. 查看客户端的 gRPC 错误信息
在开始之前,要确保 IotApiGateway 和 IotDeviceManager 项目的 launchSettings.json 文件中,applicationUrl 字段指定了不同的端口,避免应用启动冲突。完成端口设置后,在每个项目文件夹中执行 dotnet run
命令来启动应用。
启动应用后,访问 IotApiGateway 应用的 Swagger 页面,地址为 {launchSettings.json 文件中定义的基础 URL}/swagger
。在这个页面上,我们可以执行 DeviceController 的两个端点。第一个端点调用的是已完全实现的 gRPC 方法,能看到返回的数据;而第二个端点会遇到服务器故意抛出的错误。当执行 Devices/{id}
端点时,会在 IotApiGateway 应用的控制台看到相应的错误日志。
如果将 gRPC 服务器的 EnableDetailedErrors 选项设置为 false,重新启动应用后,客户端控制台捕获并记录的异常将不再包含原始错误消息。启用该选项时,错误消息为 “Exception was thrown by handler. This call is not ready yet.”;禁用时,仅显示 “Exception was thrown by handler”。这样可以在开发环境获取详细错误信息,同时在生产环境对用户隐藏这些信息。
2. 调试 .NET 应用中的 gRPC 服务器组件
AS