我的 Visual Studio 解决方案中有两个项目。
我想将项目 1 引用为项目 2 中的“连接服务”。因此,当 gRpc 服务的 DataContract 更改时,我将能够更新“服务引用”,并且将重新生成与 gRpc 服务器通信的客户端存根.
我尝试配置客户端项目并添加“连接服务”。在“添加服务引用”对话框中,我选择添加“gRPC”类型的服务。单击“下一步”按钮后,我提供正在运行的 grpc 服务器的反射端点的 URL。 (https://localhost:portnumber/grpc.reflection.v1alpha.ServerReflection/ServerReflectionInfo)
单击“完成”按钮后,我收到一条错误消息“无法从以下位置下载元数据文件:https://localhost:portnumber/grpc.reflection.v1alpha.ServerReflection/ServerReflectionInfo” 在我的 grpc 服务器上的日志信息中,我看到错误消息“不支持‘(null)’的请求内容类型”。
Visual Studio 期望什么作为配置 gRpc 连接服务的输入?
注意:我已经使用 Postman 和 dotnet-grpc-cli 测试了我的 gRpc 服务器。端点和合约被正确发现,并且可以使用 Postman UI 调用。
我自己找到了解决方案。 “添加 gRPC 连接的服务”对话框中使用的 Url 需要指向返回 .proto 文件的 http GET 端点。不像我预期的那样是 grpc 反射端点的 url。
感谢 Microsoft 提供缺失的文档......