我使用 .NET 创建了一个服务安装包 (msi),它在运行时会安装一个 Windows 服务,该服务旨在运行 Apache Solr 实例(以帮助从 Web 应用程序中进行搜索)。我在托管 Solr 的同一台计算机上运行该服务。当我启动它时,我得到:
无法启动服务。System.Net.WebException:无法连接到远程服务器 ---> System.Net.Sockets.SocketException:无法建立连接,因为目标计算机主动拒绝它 [MachineIP]:8983 在 System.Net.Sockets.Socket.DoConnect(EndPoint endpoingSnapshot, SocketAddress socketAddress) 在 System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception) --- 内部异常堆栈跟踪结束 --- 在 System.Net.HttpWebRequest.GetResponse() 在 SOLRService.SolrService.OnStart(String[] args) 在 System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)
其中 [MachineIP] 是盒子的 IP。再次,我尝试从它尝试连接的同一盒子启动此服务。我尝试 ping 它自己的 IP,只是为了好玩,结果一切正常。我只是不明白为什么服务器会主动拒绝与自己的连接。我们已经能够在开发中实现这一点。
谢谢。
答案1
Connection refused
表示没有任何东西正在监听该端口(您的情况是 8983)。启动应该监听该端口连接的服务。