Installierter Service funktioniert nicht, nur bei Doppelklick auf die exe

Gast #4330195
Lesenswert?
• ▲
▼
Hi,

ich habe Windows 8.1 und mir einen Windows Service programmieren lassen.
Dieser Service lädt von meiner Webseite alle 30 Sekunden einen Messwert.

Wenn ich Ihn per doppelklick starte, öffnet sich ein dos-Fenster und ich 
sehe, wie die Daten heruntergeladen werden.

Wenn ich nun diesen wieder schließe, per cmd in den entsprechenden 
Ordner wechsle und dort den Namen des Service gefolgt von install 
eingebe, so kann ich diesen dann im "Services" Fenster sehen und 
neustarten.
Leider lädt er aber keine Daten herunter, sondern gibt nur folgende 
Zeile aus:
2015-10-30 15:44:55 No data.
2015-10-30 15:44:59 Failed to get value
Unable to connect to the remote server
2015-10-30 15:44:59 No data.
The Data-Files are empty.

Beim Entwickler habe ich nachgefragt warum und weshalb das so sein kann 
und dieser zeigte mir nur, dass bei ihm alles wie gewünscht funktioniert 
- weiß aber auch keine Lösung.

Kann sich hier wer vorstellen warum sowas so sein kann bzw. wie ich es 
anstelle, damit er auch im Hintergrund läuft?
Gast #4330231
Lesenswert?
• ▲
▼
Wo gibt der Service seine Meldungen denn aus? Auf irgendeiner Konsole 
kann er nichts ausgeben. Wenn er das tut, läuft er nicht als Service.

Stehen irgendwelche Meldungen zum Thema im Event Log?

Die Selbstinstallation eines Service funktioniert nicht mehr so wie 
"früher", Deine Angaben deuten darauf hin, das hier genau dieses Problem 
vorliegt.

"Bei mir gehts" als einzige Reaktion eines Entwicklers bedeutet exakt 
"ich habe da irgendwas zusammengeschrummelt, ohne es zu verstehen, also 
laß mich in Ruhe".
Gast #4330244
Lesenswert?
• ▲
▼
sunshineh schrieb:
> aber wie mache ich das?

Administrative Tools
  Computer Management
    Services and Applications
      Services
        (DeinService)
          RightClick - Properties

Der "Local System Account" kann natürlich auf's Netzwerk zugreifen, aber 
NICHT auf Netzwerklaufwerke.

Und "Allow service to interact with desktop" erlaubt natürlich keine 
Konsolenausgaben.
Gast #4330279
Lesenswert?
• ▲
▼
sunshineh schrieb:
> Nur wenn ich auf ihn Doppelklicke sehe ich die Konsole und das er Daten 
herunterlädt.

Du meinst, wenn Du ihn im Windows Explorer doppelklickst? Naja, dann 
läuft er NICHT als Service, sondern als normales Konsolenprogramm.

> Wie installiert ma den Service den richtig?

Mit dem zum Service mitgelieferten Installer.
Gast #4330292
Lesenswert?
• ▲
▼
Installer ist leider keiner dabei.

Wenn die exe als Konsolenprogramm läuft, dann müsste sie ja auch als 
service laufen, oder?

Ich bin eigentlich als Benutzer am pc angemeldet, sage aber bem 
cmd-Aufruf, als Administrator ausführen.
woran kann ich bei einem Dienst erkennen, ob er ins Internet darf oder 
nicht?
Gast #4330304
Lesenswert?
• ▲
▼
sunshineh schrieb:
> Installer ist leider keiner dabei.

Lustig. Und was meint der Entwickler, wie Du ihn dann installieren 
sollst?

> Wenn die exe als Konsolenprogramm läuft, dann müsste sie ja auch als
> service laufen, oder?

Nein. "Früher" konnte man einen Service so schreiben, das er sich quasi 
"selbst" installiert - aber spätestens seit Win7 geht das nicht mehr.
Gast #4330318
Lesenswert?
• ▲
▼
Dödel schrieb:
> Unter welchem Account läuft der Dienst. Normalerweise hat LocalService
> keinen Zugriff aufs Netzwerk.
> Starte diesen mit einem Useraccount.

das ist nicht richtig.

Als LocalService hat er kein zugriff auf Freigaben, aber 
Sockets/Netzwerk geht ohne Probleme.

Das kann also nicht das Problem sein.
Persönliche Seite #4330541
Lesenswert?
• ▲
▼
Dauergast schrieb:
> Nein. "Früher" konnte man einen Service so schreiben, das er sich quasi
> "selbst" installiert - aber spätestens seit Win7 geht das nicht mehr.

Natürlich geht das. Die Selbstinstallation erfordert 
Administratorrechte, und einen Kommandozeilenparameter zum Unterscheiden 
zwischen Aufruf durch SCM und Kommandozeile. Da hat sich nichts 
geändert, das geht auch auf 2012 Server R2 immer noch genau so.
Gast #4330781
Lesenswert?
• ▲
▼
Also nochmal zum Verständnis für mich.

Der Service funktioniert an sich, dass sehe ich wenn ich es per 
Doppelklick auf die exe als Konsolenanwendung ausführe. Er kommt ganz 
normal ins Internet und ich muss ihn nirgends freischalten.

Wenn ich ihn installiere gehe ich so vor. Ich starte cmd als 
Administrator, gehe in den entsprechenden Ordner und sage den exe Namen 
führt von install.

Dann öffne ich Services.msc als User, nicht als Admin, gehe auf den 
Service und auf "Start", ich bekomme keine weitere Meldung einer 
Firewall oder ähnlichen, nur vom Programm die Info, dass er den 
Remote-Server nicht connecten kann.

Für mich heißt dass doch, dass ich durch die Installation nicht auf die 
selben Sachen zugreifen kann, wie durch den Start als Konsolenanwendung.

Avast und McAfee habe ich testweise deaktiviert, doch das hat nichts 
geholfen.

Wie kann ich nun feststellen, warum der Dienst nicht läuft?
Persönliche Seite #4330860
Lesenswert?
• ▲
▼
sunshineh schrieb:
> Der Service funktioniert an sich, dass sehe ich wenn ich es per
> Doppelklick auf die exe als Konsolenanwendung ausführe. Er kommt ganz
> normal ins Internet und ich muss ihn nirgends freischalten.

Dann läuft das Ding aber nicht als Service ("Dienst"), sondern als 
stinknormales Programm. Und das tut es in dem Benutzerkonto, in dem Du 
gerade angemeldet bist.

Wenn Du es als Dienst installierst, läuft es in einem anderen 
Benutzerkonto - das kannst Du im Dienstemanager auch einstellen 
(services.msc).

Stell' da halt Dein Benutzerkonto ein (dazu musst Du Benutzernamen und 
Passwort angeben, und Dein Konto muss das Recht "Log on as a service" 
haben.

https://technet.microsoft.com/de-de/library/cc794944(v=ws.10).aspx
Gast #4330930
Lesenswert?
• ▲
▼
sunshineh schrieb:
> Also, dass habe ich nun umgestellt. Nun erhalte ich die Meldung:
>
> Windows could not start the Service) on Local Computer.
>
> Error 1069: The service did not start due to a log-on failure.

Hm. Diese Fehlermeldung deutet, nach etwas suchen im Internet, darauf 
hin, dass Du einen der genannten Schritte nicht, oder nicht korrekt 
ausgeführt hast. (Es gibt allerdings wahrscheinlich noch weitere 
Möglichkeiten).

Prüfe bzw. wiederhole folgendes:

> Stell' da halt Dein Benutzerkonto ein (dazu musst Du Benutzernamen
> und Passwort angeben, und Dein Konto muss das Recht "Log on as a service"
> haben.
Gast #4330945
Lesenswert?
• ▲
▼
Rufus Τ. F. schrieb:
> Wenn Du es als Dienst installierst, läuft es in einem anderen
> Benutzerkonto

Es gibt hunderte Dienste auf dem PC, und fast alle Entwickler kriegen es 
hin, dass der Dienst auf das zugreifen kann was er braucht, ohne dass 
der Benutzer eingreifen muss. In diesem speziellen Fall scheint aber 
nicht nur der User/TO wenig Ahnung zu haben, sondern auch sein 
"Softwareentwickler".

Georg
Gast #4331229
Lesenswert?
• ▲
▼
Ich habe gerade gesehen, dass die Hilfe-Seite ja für einen Windows 
Server gedacht ist. Ich habe hier aber nur einen normalen Windows 8.1 
PC, auf dem ich den Dienst laufen lassen möchte.

Das sollte doch auch funktionieren, oder?
Gast #4331898
Lesenswert?
• ▲
▼
Hi,

gerade habe ich meinen 360 Total Security Scan durchlaufen lassen.
Er meldet mir die entsprechende exe mit EUR/QVM03.0.Maleware.Gen

Muss ich mir hier Gedanken machen, dass der Entwickler mich betrügen 
wollte?
Gast #4332610
Lesenswert?
• ▲
▼
OK, ich habe nun die exe mit virustotal.com durchlaufen lassen und 
anscheinend ist sie sauber.
Ich habe die exe nun auf einem anderen PC installiert und dort 
funktioniert alles einwandfrei.

Habt ihr noch nen Tipp, was ich hier am Notebook machen kann bzw. was 
ich dem entwickler ausrichten kann?
Ich hab keinen Plan was ich noch tun könnte und muss den Service hier 
zum Laufen bringen :-(
Gast #4332613
Lesenswert?
• ▲
▼
sunshineh schrieb:
> Habt ihr noch nen Tipp, was ich hier am Notebook machen kann bzw. was
> ich dem entwickler ausrichten kann?
> Ich hab keinen Plan was ich noch tun könnte und muss den Service hier
> zum Laufen bringen :-(

das installieren klappt ja scheinbar, sonst würde er nicht in "Services" 
stehen.

Lade dir mal 
https://technet.microsoft.com/de-de/sysinternals/bb896645.aspx runter.

Setzte einen Filter auf den Name der exe und starten dann den Dienst.
Gast #4334107
Lesenswert?
• ▲
▼
@Peter II
Danke, super Tipp!

Das komische ist, dass der Prozess Monitor anzeigt, das der Service doch 
ins Internet kann. Dahinter steht doch SUCCESS.

Kann ich hier nun irgendwie erkennen, warum der Service auf diesem 
Notebook keine Daten abruft, auf einem anderen aber schon?
Gast #4334378
Lesenswert?
• ▲
▼
Ich habe nun mit dem Process Monitor die Communication hier auf meinem 
Notebook und auch die dem anderen PC beobachtet.
Bei dem anderen PC, bei dem der Dienst problemlos funktioniert, heißt es 
immer TCP Send und TCP Receive zu der externen IP-Adresse

Bei mir hier lokal sieht wie im Anhang aus, er versucht einen TCP 
Reconnect zu
127.0.0.1:49701 -> 127.0.0.1:57482
Das sieht doch so aus als würde er die Anfrage an sich selbst senden, 
weil er nicht raus darf??

Wie komme ich nun an die Software, die diesen Dienst blockt? Kann ich 
dies auch irgendwie mit dem ProzessMonitor filtern?
Gast #4334389
Lesenswert?
• ▲
▼
sunshineh schrieb:
> Wie komme ich nun an die Software, die diesen Dienst blockt? Kann ich
> dies auch irgendwie mit dem ProzessMonitor filtern?

war auf dem PC mal eine Firewall installiert (also nicht die von MS)?

Norton hatte mal ein Problem, wenn man es entfernt hat blieben die 
regeln bestehen.
Gast #4334410
Lesenswert?
• ▲
▼
OK, es kann schon sein, dass ich früher andere Antivirenprogramme bzw. 
Firewalls installiert hatte...

Der Pfad wohin er soll steht eigentlich in einem *.exe.config File. Ich 
weiß aber nicht, ob dieser intern in die Registry geschrieben wird, habe 
aber gerade den Entwickler deshalb angeschrieben.


//---


Mir ist noch etwas anderes aufgefallen, hat aber nichts direkt mit dem 
Problem zu tun.
In der Services.msc habe ich keine Spalte mit der PID und kann diese 
auch nicht über View > Add/Remove Columns ergänzen. Kennt ihr das?
Gast #4334513
Lesenswert?
• ▲
▼
sunshineh schrieb:
> In der Services.msc habe ich keine Spalte mit der PID und kann diese
> auch nicht über View > Add/Remove Columns ergänzen. Kennt ihr das?

Verwechselst Du das vielleicht mit dem Taskmanager? Da wird bei den 
Diensten die PID angezeigt, im Dienste Fenster gibts die Spalte afaik 
nicht.
Gast #4334858
Lesenswert?
• ▲
▼
Dauergast schrieb:

> Nein. "Früher" konnte man einen Service so schreiben, das er sich quasi
> "selbst" installiert - aber spätestens seit Win7 geht das nicht mehr.

Natürlich geht das. Die Exe muß nur die entsprechende Manifest-Resource 
beherbergen, die klarstellt, dass sie Admin-Rechte benötigt und der User 
muss ggf. den UAE-Popup abnicken.

Und dann geht alles im Prinzip ganz genau so, wie es schon immer ging, 
mindestens seit seligen NT3.5-Zeiten.

Genau genommen hat sich am Sicherheitskonzept von WindowsNT nämlich seit 
unvordenklichen Zeiten rein garnix Nennenswertes mehr geändert. Der 
ganze auffällige, mit Vista eingeführte UAE-Quatsch (und mit Win7 wieder 
etwas weniger auffälig gewordene) ist nur übergestülpte 
Pseudosicherheit, die am Grundkonzept eigentlich absolut garnix geändert 
hat. Ungefähr so sinnvoll und hilfreich wie der per default nicht direkt 
"anmeldbare" root-account von Ubuntu oder andere, ähnlich idiotische 
"Sicherheits"-Einrichtungen anderer OS.

Alles nur gleichermaßen hilflose Versuche, dem Hauptproblem irgendwie 
beizukommen: dem in mindestens 95% aller Fälle vollkommen unfähigen und 
unwissenden DAU vor dem Monitor, der einerseits das System möglichst 
umfassend benutzen können soll, sich dabei aber andererseits möglichst 
nicht gleichzeitig in die Scheisse reiten soll.

Mein Fazit: Jeder dieser Ansätze ist letztlich gleichermaßen grandios 
gescheitert. Nutzerkompetenz läßt sich halt offensichtlich durch nix 
ersetzen, nur dadurch, eben diese zu schaffen. Und dazu hat wohl 
eigentlich keiner dieser idiotischen Ansätze irgendwie hilfreich 
beigetragen. Die Ubuntu-User kennen jetzt ihr Passwort sehr schnell 
auswendig (weil sie es für jeden Scheiß eintippen müssen) und die 
Wixdos-User können einen Button mehr anklicken als früher. Wow, welch 
ein grandioser "Gewinn" an Sicherheit...
Gast #4334892
Lesenswert?
• ▲
▼
Ja, das habe ich wirklich mit dem Taskmanager verwechselt! Vielen Dank!

Der Entwickler hat mir nun geschrieben, dass das Programm die URL beim 
Start des Programms aus dem Config-File holt.
Das hilft mir nur leider nicht weiter :-(
#4334907
Lesenswert?
• ▲
▼
Hallo,

wo sucht denn das Programm die Konfigdatei?
Du schreibst das Programm aus der Dosbox gestartet zu haben - bist du da 
vorher in den Ordner gewechselt? Funktionert es auch wenn du das 
Programm aus einem anderen Ordner mit Angabe des Pfads startest?
Was sagt der Prozessmonitor, sollte doch auch zu sehen sein.

Sascha
Gast #4334982
Lesenswert?
• ▲
▼
Also ich gehe in den entsprechenden Ordner und klicke doppelt auf die 
exe-Datei, dann geht es.
Das config-File liegt auch in diesem Ordner. Wenn ich den Doppelklick 
durchführe, bin ich ganz normal angemeldet, nicht als Administrator. Ich 
muss allerdings die Meldung von Windows noch bestätigen, dass ich diesem 
Dienst traue.

Wenn ich den Dienst (also die gleiche exe) installiere, starte ich cmd 
als Administrator. Das Confi-File liegt aber auch in diesem Fall in dem 
Ordner der exe.

Der Entwickler meinte nun:
"Check your network settings - proxy etc. That's definitely your local 
configuration issue. If it doesn't help I will try to disable proxy 
programmatically just for needed requests"

Was meint ihr dazu?
Persönliche Seite #4335299
Lesenswert?
• ▲
▼
Das Programm wird nicht auf seine Konfigurationsdatei zugreifen können.

Lass' das Ding als Service laufen, schnapp' Dir den Process Explorer und 
lass' Dir die Eigenschaften des Prozesses anzeigen. Dort wird auch das 
Arbeitsverzeichnis angezeigt - in dem erwartet das Programm seine 
Konfigurationsdatei.

Vernünftige Entwickler bauen in ihre Programme Log-Ausgaben ein, in 
denen sie unter anderem vermerken, ob ihre Programme auf 
Konfigurationsdateien zugreifen können.
Gast #4335512
Lesenswert?
• ▲
▼
@Rufus:
Das war es leider nicht. Ich sehe im Process Monitor, dass das 
Config-File ausgelesen wird :-(

Den Laptop platt machen kann ich aktuell leider noch nicht, da ich noch 
ein paar  Sachen hier brauche und noch nicht neuinstallieren kann.

Für mich ist die IP-Geschichte unverständlich, wenn er doch das 
Config-File mit der Internetadresse ausliest.
Gast #4336828
Lesenswert?
• ▲
▼
Da ich noch keine Lösung gefunden habe, nutze ich das Programm als 
Konsolenprogramm. Allerdings habe ich nun das Problem, dass wenn ich auf 
ich auf das File zugreife, das periodische Herunterladen der Werte mit 
der Meldung "The process cannot access the file ... because it is beeing 
used by another process."
Kann man mit Visual Studio das File so erstellen, dass ich es mit einem 
anderen Programm auslesen kann? Muss ich das File zuvor kopieren?
Gast #4336842
Lesenswert?
• ▲
▼
sunshineh schrieb:
> Kann man mit Visual Studio das File so erstellen

Du meinst, ein Programm so erstellen? Es gibt verschiedene 
Möglichkeiten, z.B. kann man nach der Taktik verfahren File öffnen - 
schreiben/lesen - sofort wieder schliessen, und wenn es nicht klappt 
nach x sec wieder probieren. Oder man öffnet die Datei in einem 
geeigneten sharing mode. In beiden Fällen muss man das aber in beiden 
Programmen richtig regeln, sowohl im Service als auch in dem Programm 
mit dem du zugreifen willst.

Informiere dich über sharing modes.

Georg

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren