如何解决无法使用 gRPCUI 加载依赖的 .proto 文件
我有一个简单的 gRPC 应用。我有 2 个 proto 文件。
1.问候.proto
Syntax = "proto3";
import "protos/common.proto";
option csharp_namespace = "Module.SubModule.API";
package greet;
service Greeter {
rpc SayHello (HelloRequest) returns (HelloReply);
}
message HelloRequest {
string name = 1;
}
message HelloReply {
string message = 1;
Error error = 2;
}
2. common.proto
Syntax = "proto3";
option csharp_namespace = "Module.SubModule.API";
package greet;
message Error {
int32 status_code = 1;
}
文件结构
项目文件输入
<ItemGroup>
<Protobuf Include="Protos\common.proto" GrpcServices="Server" />
<Protobuf Include="Protos\greet.proto" GrpcServices="Server" />
</ItemGroup>
当我运行应用程序然后使用 grpcui localhost:5001
时,我收到以下错误消息
Failed to compute set of methods to expose: Symbol not found: greet.Greeter
caused by: File not found: protos/common.proto
有人可以帮忙吗? common.proto 文件位于同一目录中,应用程序运行良好,没有任何构建错误。但是当使用 gRPCUI 时,我明白了。
解决方法
这可能是服务器反射问题。查看 github 上的自述文件 - Proto Source Files 它说如果不支持服务器重新选择,则包含要正确包含的依赖项的导入路径。
这篇文章可能也有帮助gRPC Server Reflection in the .NET world
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。