Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   RAD Server Ini oder Registry auslesen (https://www.delphipraxis.net/209246-rad-server-ini-oder-registry-auslesen.html)

nufus42 15. Nov 2021 14:14

RAD Server Ini oder Registry auslesen
 
Moin zusammen,
ich habe folgendes Problem.
Ich entwickle mit einer lizensierten Delphi Architect einen RAD Server Package für App-Anbindung.
Installation ist mit ner Rad Server Lizenz erfolgt.
Ich habe zwei Module im Package angelegt, die auf eine Firedac-Verbindung zugreifen.
Die Conncetion-Einstellungen werden aus einer Ini bzw. der Registry geladen.

Test in der IDE :thumb:
Test auf dem Produktionsserver mit EMSDevServer :thumb:
Test unter IIS :wall:

Nur im IIS ist die Verbindung zur Datenbank nicht lesbar und wird daher nicht gesetzt.

Test ohne DB-Anbindung läuft auch im IIS.

Also muß es meiner Schlußfolgerung nach der Punkt sein, daß das Package im ISAPI-Mode nicht auf Ini-Datei und/oder Registry zugreifen kann.

Gibt es hier von Euch Erfahrungen, best practices oder Hinweise, die mir weiterhelfen könnten?

Uwe Raabe 15. Nov 2021 14:21

AW: RAD Server Ini oder Registry auslesen
 
Wo liegt die INI-Datei bzw. in welchem Zweig stehen die Registry-Einträge und wie greifst du darauf zu?
Unter welchem User wird der RAD-Server im IIS gestartet und hat dieser den benötigten Zugriff auf obige Ressourcen?

nufus42 15. Nov 2021 15:18

AW: RAD Server Ini oder Registry auslesen
 
Die Ini ist im Package hart-codiert und liegt unter C:\inetpub\RADServer\radserver und ist (Ja, ich weiß) für Jeder freigegeben (Lesen, Schreiben, Ausführen).
Die Reg-Einträge liegen unter HKEY_CURRENT_USER und werden beim Start aus der Ini beschrieben.
Wenn die Ini nicht da ist oder lesbar/erreichbar wäre, könnte man die auch von Hand setzen (so der Plan nach dem ersten Zugriffsproblem).

Unter welchem User der RAD Server im IIS gestartet wird, weiß ich leider nicht.
Wie kriege ich das raus?

Laut Taskmgr ist nur ein User aktiv, nämlich der, mit ich angemeldet bin.

Uwe Raabe 15. Nov 2021 15:44

AW: RAD Server Ini oder Registry auslesen
 
Der IIS verwaltet seine Module mit sogenannten Application Pools. Jedem diese App Pools ist ein Account zugeordnet, unter dem der Pool läuft. Standardmäßig legt der IIS beim Erzeugen eines neuen App Pools einen gleichnamigen User-Account an. Der hat aber nur die nötigsten Rechte um den App Pool zu betreiben.

Wenn die INI-Datei für jeden freigegeben ist, müsste die auch von RAD-Server gelesen werden können. Die Registry-Einträge landen dann auch in dem User-Zweig des App Pool Accounts (und nicht in deinem!).

Das ganze hier ist aber auch nur dann relevant, wenn es wirklich ein Zugriffsrechteproblem ist.

nufus42 15. Nov 2021 16:40

AW: RAD Server Ini oder Registry auslesen
 
Danke Danke Danke!

Ich hab das Problem nun gelöst.
Tatsächlich waren die Zugriffsrechte auf die Registry das Problem bzw auch die Usernamen.
Ich habe es nun wie folgt gelöst:
Auslesen aus der Ini in einem separaten Datenmodul bei Start. Im RAD Server Modul krieg ich das einfach nicht hin, egal mit welchen Rechten auf die Ini.
Und das ganze in der Registry speichern, da ich mit globalen Variablen merkwürdigerweise auch meine Probleme hatte beim Auslesen im RAD Modul
Ich habe jetzt doch HKEY_LOCAL_MACHINE/SOFTWARE genommen, wegen der wechselnden User.
Und GANZ WICHTIG! Die Rechte für die Gruppe IIS_IUSRS für den Registry-Schlüssel auf Vollzugriff gesetzt!
(Ich wußte bis heute nicht mal, daß das geht. Weil ich es noch nie brauchte wahrscheinlich. Ich bin doch auch nur Anwender und kein SysAdmin. ;-) )
Dann in den RAD Server Modulen aus der Registry auslesen und die Verbindung klappt.

Danke, Du hast mir mit Deinen Fragen und Hinweisen den Abend gerettet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:58 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