Einzelnen Beitrag anzeigen

Rolf Frei

Registriert seit: 19. Jun 2006
629 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Daten lesen und schreiben aus einer ISAPI-Dll

  Alt 5. Aug 2022, 18:44
Der Benutzer (Gruppe) heisst IIS_IUSRS. Zumindest für eine Delphi CGI-Exe wird dieser verwendet. Kann sein dass für eine ISAPI-DLL eventuell ein anderer genutzt wird (IIS_WBG / IUSR). Am Dienst darfst und sollst du nichts ändern (!), das läuft da alles wie es sein soll. Du musst nur dem IUser bei deinem Verzeichnis die richtigen Schreibrechte geben (auf NTFS ACL-Ebene) und dann sollte es problemlos gehen. Ich nehme ja mal an, dass du Grundkonfiguration (Handler, AppPool, etc) des IIS bereits angepasst hast, damit du ISAPI/CGI überhaupt nutzen kannst, ansonsten würde du einen anderen Fehler bekommen.

Ich würde dir aber empfehlen besser eine CGI-EXE zu machen, da diese viel einfacher administrierbar ist, da du so einfach die neue Exe ersetzen kannst, ohne den IIS zu Stoppen oder sonst was damit zu machen. Bei einer ISAPI DLL ist das deutlich mühsamer, da du dann den IIS Stoppen oder zumindest die alte Version entladen musst. Da ist nur unnötiger Aufwand und bringt nicht wirklich einen Vorteil, weil auch eine CGI-Exe im Cache des IIS beibt und daher praktisch genauso schnell ist wie eine ISAPI-DLL. Ich habe da mal Tests gemacht und da kaum einen Unterschied festgestellt. Einzig das erste Aufruf nach einem Neuboot, oder längerer Pause, kann etwas länger dauern, aber wie reden hier von ein paar ms.

Auf was du noch achten musst, ist dass du keine Routinen aufrufst, die eine MessageBox oder andeer Interaktion verlangen. Damit hängt sich deine Webapplikation auf und du wirst irgendwann einen Fehler bekommen.

@charly52 @himitsu @redeemer
Nein das hat mit dem Dienst nchts zu tun. Der IIS Dienst läuft als lokaler System Dienst. Die Benutzerverwaltung hat damit überhaupt nichts zu tun. Der IIS ist wesentlich komplexer als nur ein einfacher Dienst. Der User wird im IIS definiert, respektive eben als Default der sehr eingeschränkter anonyme User IIS_IUSR verwendet. Da muss er nichts daran ändern, sonst eröffnet er nur mögliche Sicherheitslöcher.

Geändert von Rolf Frei ( 5. Aug 2022 um 19:01 Uhr)
  Mit Zitat antworten Zitat