AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

isapi.dll auf Apache 2.4

Ein Thema von lowmax_5 · begonnen am 15. Nov 2018 · letzter Beitrag vom 18. Nov 2018
Antwort Antwort
lowmax_5

Registriert seit: 9. Mai 2003
Ort: Münster, NRW
258 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: isapi.dll auf Apache 2.4

  Alt 16. Nov 2018, 09:37
Bin nun weiter gekommen: Mit folgendem Einträgen ist ein Zugriff möglich:

Code:
<IfModule mod_alias.c>
    # This allows ISAPI dll's and CGI exe's (both are required for regular aliases)
    AddHandler isapi-handler .dll
    #AddHandler cgi-script .exe
    ISAPICacheFile D:/Apache/isapi/isapi.dll

    Alias /isapi "D:/Apache/isapi"

    <Directory "D:/Apache/isapi">
        Options ExecCGI
        AllowOverride None
   Require all granted
    </Directory>

</IfModule>
Wenn die Isapi jedoch intern einen DB-Zugriff auslöst erhalte ich folgende Meldung:

Code:
AH02115: HSE_STATUS_ERROR result from HttpExtensionProc(): D:/Apache/isapi/isapi.dll
Habe etwas gefunden, dass Apache mit ThreadPooling nicht klar kommt und daher die Unit Web.Win.ISAPIThreadPool entfernt. Das Ergebnis ist leider das Gleiche...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.877 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: isapi.dll auf Apache 2.4

  Alt 16. Nov 2018, 09:43
Stammt die ISAPI-DLL von Dir? Dann würde ich gleich ein Apache-Modul erzeugen und verwenden.
Markus Kinzler
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#3

AW: isapi.dll auf Apache 2.4

  Alt 16. Nov 2018, 09:50
DB-Zugriff über welche Schnittstelle(n) / Komponente(n)?

Hier Auszüge aus einer "Uraltisapidll", die Reihenfolge im Uses was damals schon wesentlich und zwingend zu beachten:
Delphi-Quellcode:
library WebSQLSearch;

uses
  ActiveX,
  ComObj,
  ISAPIThreadPool,
  ISAPIApp,
  BrkrConst in '..\..\..\Delphi7\Source\Internet\BrkrConst.pas',
  WebBroker in '..\..\..\Delphi7\Source\Internet\WebBroker.pas',
  WebSQLSearchUnit1 in 'WebSQLSearchUnit1.pas{wm: TWebModule};

{$R *.res}

exports
  GetExtensionVersion,
  HttpExtensionProc,
  TerminateExtension;

begin
  CoInitFlags := COINIT_MULTITHREADED;
  Application.Initialize;
  Application.CreateForm(Twm, wm);
  Application.Run;
end.
Am Ende der WebSQLSearchUnit1 steht:
Delphi-Quellcode:
initialization
  // Das wird für ADO dringend benötigt.
  CoInitialize(nil);

finalization
  CoUninitialize;

end.
Keine Ahnung, ob das heute auch noch so sein muss, aber eventuell hilft es ja.

Habe allerdings nie den Apache genutzt sondern nur 'nen Delphi-Indykomponenten-Eigenbau unter Windows.
  Mit Zitat antworten Zitat
lowmax_5

Registriert seit: 9. Mai 2003
Ort: Münster, NRW
258 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: isapi.dll auf Apache 2.4

  Alt 16. Nov 2018, 16:32
Zitat:
Stammt die ISAPI-DLL von Dir? Dann würde ich gleich ein Apache-Modul erzeugen und verwenden.
Ja dem ist so. Das wäre vermutlich der sinnvollste Weg dieses über ein Webmodule zu realisiern. Nur wie wird diese genau eingebunden? Ich habe in der Projektdatei Hinweise gefunden, aber mir ist nicht ganz klar, wie ich das erzeugte Linkmodul test.dll einbinden muss. Der Apache läuft unter Windows und die Module im Verzeichnis \module haben alle die Endung *.so. Kann ich da einfach die erzeugte test.dll hinzufügen?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.877 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: isapi.dll auf Apache 2.4

  Alt 16. Nov 2018, 16:39
Ja. Die Endung ist egal. Muss nur entsprechend in die Konfiguration eingetragen werden. (Hauptkonfig oder modulspezifische Konfigurationsdatei.
Markus Kinzler
  Mit Zitat antworten Zitat
lowmax_5

Registriert seit: 9. Mai 2003
Ort: Münster, NRW
258 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: isapi.dll auf Apache 2.4

  Alt 18. Nov 2018, 22:00
Funktioniert nun einwandfrei als Apache-Modul. Falls jmd. ein ähnliche Fragestellung hat hier die Lösung:

In Delphi: TestLinkModul.dll erstellen compilieren für x32/x64 je nach ApacheServer

Umbenennen in mod_TestLinkModul.dll und kopieren nach Apache24\modules\


Projektdatei prüfen:
exports
GModuleData name 'TestServer';

Merken: TestServer


Nun folgenen Eintrag in der httpd.conf durchführen:

Code:
LoadModule TestServer modules/mod_TestLinkModul.dll
sowie

Code:
<Location /testmod>
  SetHandler mod_TestLinkModul-handler
</Location>

Der Aufruf erfolgt nun mit

http://localhost/testmod
  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 02:50 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