У нас есть основной веб-сайт asp.net, развернутый в докере в Debian 9. На той же машине, на которой основное приложение asp.net запрашивает данные, есть контейнер эластичного поиска.
Все работает гладкопримерно до 10 часов приложение завершается с ошибкой: HttpRequestException: Cannot assign requested address ---> System.Net.Sockets.SocketException: Cannot assign requested address
Ошибка возникала чаще (примерно через час), но затем мы применили предложение из Время жизни, упругий поиск документов (который в основном говорит, что у нас должен быть один экземпляр ElasticClient
и использовать его для всех соединений. Тогда время до отказа увеличится до 10 часов.
var connectionSettings = new ConnectionSettings(new Uri(server))
.DisableDirectStreaming()
.DefaultMappingFor<ProductIndexItem>(m => m.IndexName(productsIndexName))
.DefaultMappingFor<CompanyIndexItem>(m => m.IndexName(companiesIndexName))
.DefaultMappingFor<AutocompleteTerm>(m => m.IndexName(autocompleteIndexName));
if (!string.IsNullOrWhiteSpace(authHeader))
{
connectionSettings = connectionSettings.GlobalHeaders(new System.Collections.Specialized.NameValueCollection
{
{ "PcnAuth", authHeader }
});
}
_client = new ElasticClient(connectionSettings);
Ответ на любой из этих вопросов может быть очень полезным:
1. What does the error say?
2. How can we fix this error?