AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Klatsch und Tratsch Windows Cache beim Laden der EXE spinnt...oder?
Thema durchsuchen
Ansicht
Themen-Optionen

Windows Cache beim Laden der EXE spinnt...oder?

Ein Thema von haentschman · begonnen am 11. Jun 2021 · letzter Beitrag vom 15. Jun 2021
Antwort Antwort
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.438 Beiträge
 
Delphi 12 Athens
 
#1

AW: Windows Cache beim Laden der EXE spinnt...oder?

  Alt 13. Jun 2021, 12:31
Hallöle...
Zitat:
Sofern eine neuere vorhanden ist
1. Wie prüfst du das? Größe? Versionsinformationen?
2. Haben alle Dateien im Dateinamen die Versionsinformationen?
3. Wie prüfst du, das die Datei vom Inhalt neu ist? (bei mir EXE Version neu, Inhalt alt! )

Zitat:
Ein Loader Programm vergleicht jeweils die Clientversion mit der Serverversion
Da sind wir uns alle einig. Das löst aber nicht das Caching Problem...

Geändert von haentschman (13. Jun 2021 um 12:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.977 Beiträge
 
Delphi 12 Athens
 
#2

AW: Windows Cache beim Laden der EXE spinnt...oder?

  Alt 13. Jun 2021, 14:59
Irgendwie verstehe ich das Problem nicht:
- Auf dem Server liegen die Exen jeweils mit Versionsinfo im Namen
- Ein Loader kopiert die jeweils aktuelle auf den lokalen PC und benennt sie da um (ohne Versionsinfo im Namen)
- Und dann kann der Loader diese immer gleich benannte lokale Datei starten

Weder kann da das Caching des Servers die falsche Exe liefern noch kann in der TNA oder anderswo ein Problem durch anders benannte Exen entstehen.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Papaschlumpf73

Registriert seit: 3. Mär 2014
Ort: Berlin
462 Beiträge
 
Delphi 12 Athens
 
#3

AW: Windows Cache beim Laden der EXE spinnt...oder?

  Alt 13. Jun 2021, 16:46
Ich würde gerne noch mal von vorne anfangen. Unsere Software läuft bei zig Kunden. Die exe-Datei liegt auf irgendeiner Netzwerkfreigabe und alle Clients starten sie von dort über einen Startmenüeintrag. Die Updates machen wir auch mit Umbenennen der alten exe und kopieren der neuen exe, da wo die alte vorher war – selber Name usw. Dabei haben die Kunden gefühlt alle nur denkbaren Windows-Versionen auf ihren Servern und Clients im Einsatz. Dieses Problem hatten wir jedoch noch nie. Möglicherweise haben wir ja (versehentlich) etwas eingebaut, das Windows oder die Anti-Viren-Software davon überzeugt, die neue exe sauber an den Client zu übertragen:
In den Projektoptionen ist eingestellt, dass die Versionsinformationen in die exe übernommen werden. Jede neue Version bekommt hier auch ihre eigene Versionsnummer.
Mit den folgenden Einstellungen konnten wir auch schon einige, unregelmäßig auftretende Fehler beheben:
{$SetPEFlags IMAGE_FILE_NET_RUN_FROM_SWAP}
{$SetPEOptFlags IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE}

Könnt ihr ja mal ausprobieren; kann ja nicht schaden…
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.438 Beiträge
 
Delphi 12 Athens
 
#4

AW: Windows Cache beim Laden der EXE spinnt...oder?

  Alt 14. Jun 2021, 05:18
Moin...
Zitat:
Ein Loader kopiert die jeweils aktuelle auf den lokalen PC und benennt sie da um
Zum Programm gehört nicht nur die EXE. Die EXE und DLL sollen da bleiben. Ich will nicht an jedem Arbeitsplatz die komplette Installation pflegen müssen.
Zitat:
Und dann kann der Loader diese immer gleich benannte lokale Datei starten
Da bin ich dann bei einer lokalen Installation mit Updater.
Zitat:
Mit den folgenden Einstellungen konnten wir auch schon einige, unregelmäßig auftretende Fehler beheben
...hab ich schon drin. {$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP}
Zitat:
Jede neue Version bekommt hier auch ihre eigene Versionsnummer
Diese Frage hatte ich schon ein paar Threads vorher im Kopf. Ich werde mal jede Version über die Buildnummer automatisch "eindeutig" machen und das Ganze beobachten.

Geändert von haentschman (14. Jun 2021 um 06:29 Uhr)
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
984 Beiträge
 
Delphi 6 Professional
 
#5

AW: Windows Cache beim Laden der EXE spinnt...oder?

  Alt 14. Jun 2021, 07:22
Hmm..

a) Ihr dreht euch im Kreis..

b) Wenn ein Update einer EXE aufgespielt werden soll, dann geht dies nur 'sauber' wenn diese Exe von keinem client mehr 'geöffnet' ist.
Unter Windows selber wird nach dem 'öffnen' mit Dateinamen diese nur noch per Handle angesprochen. Deshalb funktioniert das umbenennen und ablegen mit gleichem Namen, da das Handle immer noch auf das andere File zeigt. Da helfen auch die PE-Flags nicht, da diese erst beim Öffnen der neuen EXE greifen!

Bei einigen Windows-Versionen, gerade bei den Serverversionen, geht diese Umbenennung, bei anderen nicht, dass hängt auch davon ab, mit was für einem Client auf das Share/die EXE zugegriffen wird.
Auch ist es so, dass per Share noch auf die alte, umbenannte (durch einen Client noch geöffnete) EXE zugegriffen wird, bis auch der letzte Client diese 'freigegeben' hat. Da wird von Windows einfach nur eine Handle-Kopie der geöffneten weiter gereicht.

Wenn Du Sicherstellen willst, dass 'wirklich' alle Clients mit der neuen Version arbeiten, dann müss vor dem Update die Exe auf allen Clients beendet werden. Dies kannst Du auf dem Server prüfen unte Verwaltung/Freigaben/Geöffnete Dateien.

( Dies basiert auf meinen Erfahrungen mit Windows-Servern und EXE von Share starten )
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.438 Beiträge
 
Delphi 12 Athens
 
#6

AW: Windows Cache beim Laden der EXE spinnt...oder?

  Alt 14. Jun 2021, 08:31
Zitat:
dann müss vor dem Update die Exe auf allen Clients beendet werden. Dies kannst Du auf dem Server prüfen unte Verwaltung/Freigaben/Geöffnete Dateien.
...dann wäre ich auf dem Stand von vor 2 Jahren. Ich konnte damals nur ein Update einspielen nach 21:00. Wenn mal was schief gelaufen ist, tagsüber alle rausschmeißen bei 365/24 Betrieb. Never zurück.
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin
Online

Registriert seit: 15. Sep 2008
Ort: Dubai
725 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Windows Cache beim Laden der EXE spinnt...oder?

  Alt 14. Jun 2021, 10:17
...dann wäre ich auf dem Stand von vor 2 Jahren. Ich konnte damals nur ein Update einspielen nach 21:00. Wenn mal was schief gelaufen ist, tagsüber alle rausschmeißen bei 365/24 Betrieb. Never zurück.
Du arbeitest direkt mit Programm das vom Share gestartet wird?
Eine lokale Kopie macht wenigstens nicht bei allen Probleme.

Ginge es, mit einem Loader zu arbeiten und das eigentliche Programm als dll zu liefern? Dann bleibt der Loader(die exe) immer gleich. Die Systray Einstellungen ändern sich dann auch nicht.
Und die Dll könntest Du jedesmal mit einem neuen Namen (Name + Buildnummer??) erzeugen.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:36 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