elasticsearch,nest,C#,.net,elasticsearch,Nest" /> elasticsearch,nest,C#,.net,elasticsearch,Nest" />

C# 对嵌套使用故障转移连接会引发奇怪的异常

C# 对嵌套使用故障转移连接会引发奇怪的异常,c#,.net,elasticsearch,nest,C#,.net,elasticsearch,Nest,我正在尝试设置2个elasticsearch节点,并在本地计算机上设置它们进行测试。使用此设置 cluster.name: TestCluster node.name: "Node1" node.master: true node.data: true network.host: 127.0.0.1 http.port: 9200 cluster.name: CMTCluster node.name: "Node2" node.master: true node.data: true netw

我正在尝试设置2个elasticsearch节点,并在本地计算机上设置它们进行测试。使用此设置

cluster.name: TestCluster
node.name: "Node1"
node.master: true
node.data: true
network.host: 127.0.0.1
http.port: 9200

cluster.name: CMTCluster
node.name: "Node2"
node.master: true
node.data: true
network.host: 127.0.0.1
http.port: 9201
当使用普通连接时,当指向任一节点时,一切正常

var node1 = new Uri("http://localhost:9200");
var settings = new ConnectionSettings(node1, "document");
var client = new ElasticClient(settings);
var result = client.Search<Customer>(s => s
            .Query(q => q.Match(m => m.Query("Abse").OnField(p => p.FullName))));
最奇怪的是,在抛出异常后,如果我让程序继续运行,它将给出正确的结果。

我错过了一些东西,但不知道是什么

对于您的网络,ping超时可能设置为低。默认值为200ms,您可以尝试通过以下方式增加它:
settings.PingTimeout()
,看看是否可以做到这一点吗?@Greg Marzouka就是这样。我已经试了半秒钟,但显然也太慢了。增加到秒,现在可以工作了。谢谢你,事实上我错了。问题不在ping中。当我用URL在我的机器上尝试时:。。。无论我设置什么样的超时,它都不起作用。当我在测试服务器上尝试elasticsearch实例时,URL如下:。。。一切正常。都有同样的问题,有没有关于它的更新如何使它在本地工作?由于某些原因,你不能使用localhost。但当我在我们的内部网络中使用我的计算机名作为配置中的主机名和url时,一切正常。
var node1 = new Uri("http://localhost:9200");
var node2 = new Uri("http://localhost:9201");

var connectionPool = new StaticConnectionPool(new[] { node1, node2 });

var settings = new ConnectionSettings(connectionPool, "cmt-zurich-steva");
var client = new ElasticClient(settings);

var result = client.Search<Customer>(s => s
            .Query(q => q.Match(m => m.Query("Abse").OnField(p => p.FullName))));
Failed after retrying 1 times: 'POST document/customer/_search'. 
InnerException: PingException, InnerMessage: Pinging http://localhost:9201/ caused an exception, InnerStackTrace:    at Elasticsearch.Net.Connection.Transport.Elasticsearch.Net.Connection.ITransportDelegator.Ping(ITransportRequestState requestState) in c:\code\elasticsearch-net\src\Elasticsearch.Net\Connection\Transport.cs:line 108
   at Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.SelectNextNode[T](TransportRequestState`1 requestState) in c:\code\elasticsearch-net\src\Elasticsearch.Net\Connection\RequestHandlers\RequestHandler.cs:line 45
   at Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.CoordinateRequest[T](TransportRequestState`1 requestState, Int32 maxRetries, Int32 retried, Boolean& aliveResponse) in c:\code\elasticsearch-net\src\Elasticsearch.Net\Connection\RequestHandlers\RequestHandler.cs:line 117
   at Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.DoRequest[T](TransportRequestState`1 requestState) in c:\code\elasticsearch-net\src\Elasticsearch.Net\Connection\RequestHandlers\RequestHandler.cs:line 149
InnerException: PingException, InnerMessage: Pinging http://localhost:9200/ caused an exception, InnerStackTrace:    at Elasticsearch.Net.Connection.Transport.Elasticsearch.Net.Connection.ITransportDelegator.Ping(ITransportRequestState requestState) in c:\code\elasticsearch-net\src\Elasticsearch.Net\Connection\Transport.cs:line 108
   at Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.SelectNextNode[T](TransportRequestState`1 requestState) in c:\code\elasticsearch-net\src\Elasticsearch.Net\Connection\RequestHandlers\RequestHandler.cs:line 45
   at Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.CoordinateRequest[T](TransportRequestState`1 requestState, Int32 maxRetries, Int32 retried, Boolean& aliveResponse) in c:\code\elasticsearch-net\src\Elasticsearch.Net\Connection\RequestHandlers\RequestHandler.cs:line 117
   at Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.DoRequest[T](TransportRequestState`1 requestState) in c:\code\elasticsearch-net\src\Elasticsearch.Net\Connection\RequestHandlers\RequestHandler.cs:line 149