исключение происходит, когда отсутствует сервер elasti c - PullRequest
0 голосов
/ 12 февраля 2020

Ниже приведен код поиска serilog elasti c. Он отлично работает, когда служба elasti c работает, но не работает, когда сервер недоступен

 .WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri("http://localhost:9200/")) // humio elastic bulk endpoint
                        {
                            AutoRegisterTemplate = true,
                            OverwriteTemplate = true,
                            DetectElasticsearchVersion = true,
                            AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv7,
                            NumberOfReplicas = 1,
                            NumberOfShards = 2,
                            RegisterTemplateFailure = RegisterTemplateRecovery.FailSink,
                            FailureCallback = e => Console.WriteLine("Unable to submit event " + e.MessageTemplate),
                            EmitEventFailure = EmitEventFailureHandling.WriteToSelfLog |
                                               EmitEventFailureHandling.WriteToFailureSink |
                                               EmitEventFailureHandling.RaiseCallback,
                            //FailureSink = new FileSink("./fail-{Date}.txt", new JsonFormatter(), null, null)
                            //ModifyConnectionSettings = x => x.BasicAuthentication(username: "", password: "88WS28JEuB0G2WC3cYufdgTINAxOGQvliBrqH5Vqutjb")  // password is ingest token from humio
                        })

возникает исключение, когда elasti c сервер отсутствует

Elasticsearch. Net .ElasticsearchClientException: 'Невозможно установить соединение, поскольку целевая машина активно отказала ему в этом. Вызов: Код состояния неизвестен из: GET / _cat / node? h = v'

HttpRequestException: No connection could be made because the target machine actively refused it.
SocketException: No connection could be made because the target machine actively refused it.

This exception was originally thrown at this call stack:
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult()
System.Net.Http.ConnectHelper.ConnectAsync(string, int, System.Threading.CancellationToken)
...