Grpc.Core.RpcException: Status (StatusCode = недоступен, Detail = "Транспорт закрыт") - PullRequest
0 голосов
/ 27 октября 2019

Я использую пользовательскую метрику Google для записи пользовательских метрик в облако. Мой код выглядит так:

var client = MetricServiceClient.Create();
// ... 
client.CreateTimeSeries(name, timeSeries);

Когда я запускаю его на своей машине, он отлично работает.

Когда я запускаю его на производстве, он прекрасно работает, пока не остановится. Я получаю это сообщение об ошибке:

Grpc.Core.RpcException: Status(StatusCode=Unavailable, Detail="Transport closed")
   at Grpc.Core.Internal.AsyncCall`2.UnaryCall(TRequest msg)
   at Grpc.Core.DefaultCallInvoker.BlockingUnaryCall[TRequest,TResponse](Method`2 method, String host, CallOptions options, TRequest request)
   at Grpc.Core.Interceptors.InterceptingCallInvoker.<BlockingUnaryCall>b__3_0[TRequest,TResponse](TRequest req, ClientInterceptorContext`2 ctx)
   at Grpc.Core.ClientBase.ClientBaseConfiguration.ClientBaseConfigurationInterceptor.BlockingUnaryCall[TRequest,TResponse](TRequest request, ClientInterceptorContext`2 context, BlockingUnaryCallContinuation`2 continuation)
   at Grpc.Core.Interceptors.InterceptingCallInvoker.BlockingUnaryCall[TRequest,TResponse](Method`2 method, String host, CallOptions options, TRequest request)
   at Google.Cloud.Monitoring.V3.MetricService.MetricServiceClient.CreateTimeSeries(CreateTimeSeriesRequest request, CallOptions options)
   at Google.Api.Gax.Grpc.ApiCall.GrpcCallAdapter`2.CallSync(TRequest request, CallSettings callSettings)
   at Google.Api.Gax.Grpc.ApiCallRetryExtensions.<>c__DisplayClass1_0`2.<WithRetry>b__0(TRequest request, CallSettings callSettings)
   at Google.Cloud.Monitoring.V3.MetricServiceClientImpl.CreateTimeSeries(CreateTimeSeriesRequest request, CallSettings callSettings)
   at XXX in XXX.cs:line 90

или похожую ошибку:

Grpc.Core.RpcException: Status(StatusCode=Unavailable, Detail="Socket closed")
   at Grpc.Core.Internal.AsyncCall`2.UnaryCall(TRequest msg)
   at Grpc.Core.DefaultCallInvoker.BlockingUnaryCall[TRequest,TResponse](Method`2 method, String host, CallOptions options, TRequest request)
   at Grpc.Core.Interceptors.InterceptingCallInvoker.<BlockingUnaryCall>b__3_0[TRequest,TResponse](TRequest req, ClientInterceptorContext`2 ctx)
   at Grpc.Core.ClientBase.ClientBaseConfiguration.ClientBaseConfigurationInterceptor.BlockingUnaryCall[TRequest,TResponse](TRequest request, ClientInterceptorContext`2 context, BlockingUnaryCallContinuation`2 continuation)
   at Grpc.Core.Interceptors.InterceptingCallInvoker.BlockingUnaryCall[TRequest,TResponse](Method`2 method, String host, CallOptions options, TRequest request)
   at Google.Cloud.Monitoring.V3.MetricService.MetricServiceClient.CreateTimeSeries(CreateTimeSeriesRequest request, CallOptions options)
   at Google.Api.Gax.Grpc.ApiCall.GrpcCallAdapter`2.CallSync(TRequest request, CallSettings callSettings)
   at Google.Api.Gax.Grpc.ApiCallRetryExtensions.<>c__DisplayClass1_0`2.<WithRetry>b__0(TRequest request, CallSettings callSettings)
   at Google.Cloud.Monitoring.V3.MetricServiceClientImpl.CreateTimeSeries(CreateTimeSeriesRequest request, CallSettings callSettings)

Эта ошибка повторяется время от времени. Похоже, 99% времени это работает.

В чем здесь проблема? Как это решить?

...