
Ich habe .NET verwendet, um ein Serviceinstallationspaket (msi) zu erstellen, das bei Ausführung einen Windows-Dienst installiert, der eine Instanz von Apache Solr ausführen soll (um die Suche aus einer Webanwendung heraus zu erleichtern). Ich führe den Dienst auf derselben Maschine aus, auf der Solr gehostet wird. Wenn ich ihn starte, erhalte ich:
Dienst kann nicht gestartet werden. System.Net.WebException: Verbindung zum Remote-Server nicht möglich ---> System.Net.Sockets.SocketException: Es konnte keine Verbindung hergestellt werden, da die Zielmaschine diese aktiv abgelehnt hat [MachineIP]:8983 bei System.Net.Sockets.Socket.DoConnect(EndPoint endpoingSnapshot, SocketAddress socketAddress) bei System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception) --- Ende des inneren Exception-Stacktraces --- bei System.Net.HttpWebRequest.GetResponse() bei SOLRService.SolrService.OnStart(String[] args) bei System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)
Wobei [MachineIP] die IP der Box ist. Ich versuche erneut, diesen Dienst von derselben Box aus zu starten, mit der er eine Verbindung herstellen möchte. Ich habe versucht, seine eigene IP anzupingen, nur aus Spaß, und es kam alles gut zurück. Ich verstehe einfach nicht, warum ein Server eine Verbindung zu sich selbst aktiv ablehnt. Wir haben es geschafft, dies in der Entwicklung zum Laufen zu bringen.
Danke.
Antwort1
Connection refused
bedeutet, dass auf diesem Port (in Ihrem Fall 8983) nichts lauscht. Starten Sie den Dienst, der auf diesem Port auf Verbindungen lauschen soll.