Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   EResNotFound (https://www.delphipraxis.net/212939-eresnotfound.html)

TigerLilly 27. Apr 2023 07:41

EResNotFound
 
Ich habe von einem Kunden die Info, dass beim Erstellen eines Formulars manchmal die Meldung "EResNotFound Ressource PREVIEWGLYPH not found" als Exception geworfen wird. Das aber nicht reproduzierbar und nicht immer/oft/bei jedem User. Ich hatte das auch noch bei keinem anderen Kunden. Die Software wird dort via Terminalserver auf mehreren TS mit Loadbalancing betrieben. Hängt auch nicht vom tatsächlichen TS ab.

Ich verstehe nicht, wie die Meldung überhaupt kommen kann. Die Ressource ist je da oder nicht. Wie kann ich herausfinden, wo die Ressource dazugehört bzw über welche Bibliothek sie eingebunden wird?

Danke für jeden Tipp!

TiGü 27. Apr 2023 08:03

AW: EResNotFound
 
Erstmal rausfinden, was das für eine Ressource ist. Der Name deutet auf ein Bild hin.
Kannst du sie mit externen Tools aus deiner EXE (und/oder verwendete DLLs) finden?
Dadurch kannst du sie vielleicht visuell zuordnen und gleich erkennen, wo und wer sie einbindet.
Ich nehme dafür gerne den Resource Hacker: http://www.angusj.com/resourcehacker/

jaenicke 27. Apr 2023 08:07

AW: EResNotFound
 
Die gehört zum TOpenPictureDialog.

TigerLilly 27. Apr 2023 09:36

AW: EResNotFound
 
Ah, stimmt - der hat diese Ressource auch. Ich hatte die WPTools im Verdacht, weil es den Resourcennamen dort auch gibt. Der Dialog ist tatsächlich auf dem Formular.

Neue Spur! :thumb:

TigerLilly 27. Apr 2023 13:42

AW: EResNotFound
 
Auch wenn ich jetzt weiß, wer der Überltäter ist - warum kommt die Fehlermeldung?

Und: Auch wenn ich den Dialog hier ersetze, heißt das ja nicht, dass das Problem nicht woanders wieder aufpoppt.

himitsu 27. Apr 2023 15:21

AW: EResNotFound
 
Wird mit Packages oder DLLs gearbeitet?

Könnte sein, dass eine falsche Instanz (ModuleHandle) benutzt wird.
z.B. Resource in EXE suchen, obwohl sie in einem Package liegt

Delphi.Narium 27. Apr 2023 15:47

AW: EResNotFound
 
Dann dürfte das aber doch eher nicht nur ab und an passieren und nur bei einem Kunden.

Aber der Ansatz erscheint mir trotzdem plausibel.

Durch die Lastverteilung wird die Resource eventuell von 'nem anderen Server angefordert, als der Dialog, was eventuell zuweilen zu 'nem Problem führen könnte? Nur so als Idee aber keine Ahnung, ob es hier einen Zusammenhang (so in Richtung Ursachensuche) geben könnte.

TigerLilly 27. Apr 2023 18:25

AW: EResNotFound
 
Keine DLLs, keine Packages. Loadbalancing bezieht sich nur auf die Wahl des TS beim Start. Der mit der geringsten Last wird genommen. Ab dann bleibt alles auf diesem TS. Alle TS haben identen Inhalt.
Der Dialog selbst wird noch nicht mal angezeigt - er liegt nur als Komponente auf der Form, der Fehler wird geworfen, wenn das Formular erzeugt wird.

Auf die leichten Sachen komm ich eh selber drauf. :- /

Mein Gefühl sagt, dass da irgendwie der Speicher eng wird. Aber es gibt keine Leaks und die Serverprotokolle sagen auch nichts aufregendes. :- (

Es gibt in den WPTools auch eine ressource dieses Namens und diese Units wurden eingebunden, aber nicht benutzt. Ich hab die jetzt mal rausgenommen + warte auf Rückmeldung.

himitsu 27. Apr 2023 19:03

AW: EResNotFound
 
32 Bit oder schon 64?


Schalte mal probehalber die Speicherrandomization aus (ist in neueren Delphis standardmäßig aktiv)
Projektoptionen > Delphi-Compiler > Linkter > ASLR

Darunter gibt es auch noch eine neuere Option zur Optimierung für Terminal-Server ... das vielleicht auch mal testweise ausschalten.

TigerLilly 28. Apr 2023 10:21

AW: EResNotFound
 
32 Bit. Legacy Anwendung. Delphi 2006. Die Form gibt es schon seit sicher 10 Jahren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:34 Uhr.

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