我在C#中使用gRPC版本0.14.0。它是供应商提供的API的一部分。当服务器启动时,所有远程调用都可以正常工作。当服务器不可用时,调用将崩溃,并且没有异常冒泡。
这就是我的代码看起来像
try
{
Channel channel = new Channel("127.0.0.1", 12122, ChannelCredentials.Insecure);
UtilityService.IUtilityServiceClient stub = UtilityService.NewClient(channel);
var fiveSecondsInFuture = DateTime.Now.AddSeconds(5).ToUniversalTime();
var asynchCall = stub.KeepAlive(new Ping { }, deadline: fiveSecondsInFuture);
Console.WriteLine(asynchCall.GetStatus());
var result = asynchCall.ResponseStream.ToListAsync().Result;
} catch(Exception e)
{
Console.WriteLine("Something went wrong");
}
在服务器不可用时处理情况的最佳方法是什么?