2016-02-26 126 views
1

我遇到了使用NEST客戶端通過ElasticSearch羣集進行連接的問題。NEST Elasticsearch錯誤:底層連接已關閉

在我的開發機器上,我可以連接並運行彈性查詢(在本地機器上運行),但在我們的臨時環境中,出現錯誤「System.Net.WebException:底層連接已關閉:連接意外關閉了。「

我們的臨時環境由運行Elastic的4臺Linux機器和運行我們客戶端軟件的Windows機器組成。

我已經在connectionsettings上設置了DisableDirectStreaming()。我也嘗試在我的web.config中設置<httpWebRequest useUnsafeHeaderParsing="true" />,但錯誤仍然存​​在(但現在ApiCall.OriginalException爲NULL)。

通過Kopf接口發送查詢返回結果,因此該集羣似乎是可操作的。

任何人都有線索在這裏出了什麼問題?

更新: 我跑的查詢(其中indexFilter EN 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獲得結果。

相關問題