У меня есть сервер 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 существует только два соединения, и это, вероятно, является весьма вероятной причинойдля этой проблемы для меня.