Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Dienst als Server ist von Clients nicht erreichbar (https://www.delphipraxis.net/170088-dienst-als-server-ist-von-clients-nicht-erreichbar.html)

Jumpy 30. Aug 2012 10:07

Dienst als Server ist von Clients nicht erreichbar
 
Hallo zusammen,

ich habe nach diesem Thread einen Dienst geschrieben, der als Server arbeitet.

Problem:
Läuft der Dienst im Kontext: "Lokales System", so können sich die Clients auf anderen Rechnern, mit diesem Server-Dienst verbinden.
Aus bestimmten Gründen muss der Dienst aber im Kontext eines Administrators laufen und dann kommt das Problem: Die Clients können sich nicht mit dem Server verbinden.

Woran könnte das liegen? Ich dachte der Kontext wäre egal, für ein Server-Programm/-Dienst, das einfach nur auf einem Port auf Verbindungsversuche von Clients lauscht. In Server und Client benutze ich einfach nur die Socket-komponenten, die bei Delphi 6 dabei sind.

Vllt. noch zum OS: Der Dienst läuft auf einem Rechner mit Windows Server 2008 R2 Standard SP1, vllt. ist das noch bedeutsam.

mjustin 30. Aug 2012 10:17

AW: Dienst als Server ist von Clients nicht erreichbar
 
Zitat:

Zitat von Jumpy (Beitrag 1180617)
Ich dachte der Kontext wäre egal, für ein Server-Programm/-Dienst, das einfach nur auf einem Port auf Verbindungsversuche von Clients lauscht. In Server und Client benutze ich einfach nur die Socket-komponenten, die bei Delphi 6 dabei sind.

Sind nur über Netzwerk verbundenen Clients betroffen, kann ein direkt auf dem Server laufender Client mit dem Dienst verbinden?

Was sagt netstat, sieht man dass der Port geöffnet ist?

Vielleicht liegt es an den alten Komponenten - ein Test mit einer simplen Indy- oder Synapse Komponente ist schnell und einfach gemacht. (TServerSocket benötigt ein Fensterhandle, vielleicht liegt das Problem in dieser Richtung)

Jumpy 30. Aug 2012 12:13

AW: Dienst als Server ist von Clients nicht erreichbar
 
Hat sich erledigt. Lag am Umfeld des Dienstes. Aber danke für die Antwort, ein Portscan hat mich auf die richtige Spur gebracht.

Zu dem Zeitpunkt als ich den Dienst im Systemkontext getestet habe, war die Welt noch in Ordnung.

Als ich etwas später den Kontext geändert und den Dienst neu gestartet hatte, hatte sich in der Zwischenzeit ein anderer Rechner aufgehängt. Mit diesem versuchte nun der Dienst beim Neustart zu kommunizieren. Da das nicht ging ist der Dienst "irgendwie" hängen geblieben und hat nicht auf Kontaktversuche der Clients reagiert. Hab Mittlerweile rausgefunden, dass der Dienst da nur eine Megalange Totzeit hat. Irgendwann läßt er dann zu, dass sich die Clients verbinden.

Bin jetzt aber dabei das zu entkoppeln, damit sowas meinen Dienst in Zukunft nicht aus der Kurve haut. Zeigt aber, das man in der Regel immer vergisst irgendwas zu bedenken (wobei ich in diesem Fall daran hätte denken müssen, das auch mal andere Rechner ausfallen können, bzw. hab ich ja gemacht, das war schon so, dass es nicht abstürzt, aber die viel zu lange Totzeit an der Stelle darf nicht sein und ggf. hätte ich da auch einen Logging-Punkt machen sollen).


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz