2016-02-26 5 views
1

У меня возникла проблема с подключением через кластер ElasticSearch с использованием клиента NEST.Ошибка NEST Elasticsearch: базовое соединение было закрыто

На моей машине разработки я могу подключать и запускать запросы против упругого (работает на моей локальной машине) просто отлично, но в нашей промежуточной среде я получаю сообщение об ошибке «System.Net.WebException: базовое соединение было закрыто: соединение неожиданно закрылся ».

Наша промежуточная среда состоит из 4 машин Linux, работающих под управлением Elastic, и Windows-машины, на которой запущено наше клиентское программное обеспечение.

Я уже установил DisableDirectStreaming() в настройках соединений. Я также попытался установить <httpWebRequest useUnsafeHeaderParsing="true" /> в свой web.config, но ошибка все еще существует (но теперь ApiCall.OriginalException - NULL).

Отправка запроса через интерфейс Kopf, возвращает результат, поэтому кластер, похоже, работает.

У кого-нибудь есть мнение, что здесь происходит не так?

Update: Запрос Я бегу это (где indexFilter ан searchFilter заполняются на основании запроса пользователя): Этот запрос делает работу на своих локальных ES (Windows/ES 2.1.1), но не на мое производство ES (Ubuntu/ES 2.1.1)

QueryContainer indexFilter = new QueryContainer(); 
QueryContainer searchFilter = new QueryContainer(); 

var result = db.Client.Search<IndexRecord> 
(
    search => search 
    .Query 
    (
     f => f.HasChild<SearchRecord> 
     (
      c => c 
      .Query 
      (
       f2 => searchFilter 
      ) 
     ) & indexFilter 
    ) 
    .Sort 
    (
     ss => ss.Ascending(f => f.AccommodationName) 
    ) 
    .Size(10) 
); 
+0

Какая версия ES вы используете? – Val

+0

Есть ли у вас пример того, как это происходит? Это прерывисто? Как правило, вы не хотите устанавливать '.DisableDirectStreaming()', если вы не хотите буферизовать байты запроса/ответа для какой-либо цели, например. регистрация всех запросов –

+0

Я запускаю ES 2.1.1. по Ubuntu 15.10. '.DisableDirectStreaming()' был установлен из-за предположения, что он решит проблему. –

ответ

1

Я решил проблему. Как-то клиент разговаривал с портом 9300 вместо порта 9200. Я исправил эту проблему и теперь получаю результаты от ES.

Смежные вопросы