问题描述
我正在使用protobuf-net(在Grpc.Core的v1.0.123之上,v2.30.0),并使用
创建代理 var channel = new Channel(uri.Host,uri.Port,ChannelCredentials.Insecure,new []
{
new ChannelOption("grpc.keepalive_time_ms",oneDayMs),new ChannelOption("grpc.keepalive_timeout_ms",new ChannelOption("grpc.keepalive_permit_without_calls",1),});
var proxy = channel.CreateGrpcService<T>();
这很好用,但是一段时间不活动后,代理停止工作,我得到 Status(StatusCode="UnkNown",Detail="Stream removed",Debu...
,我认为这是一个保持连接的问题。
我的第一个问题是:是否应该在服务器端设置这些选项?
这似乎是不可能的,因为它们是ChannelOptions,但我问是因为我的第二个问题是:有没有办法拦截客户端调用?如果有的话,我可以在尝试并重新创建代理时检查异常(这将适用于我们的用例)。但是,据我所知,Interceptor
类严格来说是服务器端的事情。
基本上,我只是想延长GRPC服务的生命周期,但是会采取任何方式到达那里。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)