Ошибки соединения SolrNet (IIS-> Tomcat) из-за только двух одновременных соединений между серверами в одной подсети - PullRequest
1 голос
/ 18 января 2012

У меня есть сервер IIS, который обслуживает страницу поиска с использованием SolrNet.Индексом поиска является Solr, работающий внутри Tomcat, на отдельной машине в той же подсети (в той же комнате).

Я получаю прерывистые ошибки подключения от IIS к серверу поиска, в основном (InnerException):

Error: The operation has timed out
In: System.Net.WebResponse GetResponse()
Stack Trace: at System.Net.HttpWebRequest.GetResponse()
at HttpWebAdapters.Adapters.HttpWebRequestAdapter.GetResponse()

И иногда (InnerException):

Error: Unable to connect to the remote server
In: System.Net.WebResponse GetResponse()
Stack Trace: at System.Net.HttpWebRequest.GetResponse()

Я считаю, что проблема в том, что IIS только когда-либо имеет два одновременных подключения к Tomcat (которые я вижу, используя CurPorts ), так что в итоге звонки настолько резервируются, что время истекло, но я не могу понять, почему.Мой сайт предварительного просмотра, на том же сервере, может создавать больше соединений, но увеличение настроек с помощью этого кода в web.config не имеет значения:

<connectionManagement>
  <add address="*" maxconnection="100"/>
</connectionManagement>

Я уже увеличил время ожидания SolrNet до 30 с, используя:

SolrNet.Startup.Init<SolrDataObject>(new SolrNet.Impl.SolrConnection(System.Configuration.ConfigurationManager.AppSettings["SolrURL"]) { Timeout = 30000 });

Сначала я задал этот вопрос об этих самых ошибках - с тех пор я обнаружил, что между IIS и Tomcat существует только два соединения, и это, вероятно, является весьма вероятной причинойдля этой проблемы для меня.

1 Ответ

0 голосов
/ 26 января 2012

Это произошло потому, что machine.config, по-видимому, был заблокирован только для некоторых сайтов в IIS - хотя я не уверен, как это случилось, изменение machine.config устранило эту проблему.

(Это неисправить основную проблему, но я обновлю ее сейчас)

...