Ich hatte gelesen, dass die
ISAPI schneller wäre. Deshalb hatte ich gleich mit
ISAPI angefangen.
Aber wenn es mit der CGI-EXE genauso geht, wäre das auch eine Alternative. Ich habe ja jetzt das Problem, dass ich IIS immer anhalten und neustarten muss. Das würde sich ja dann erübrigen, wie du oben geschrieben hattest.
Kann man die CGI-EXE genauso aufrufen, wie die
ISAPI DLL? Kann man dann vielleicht auch noch Ausgaben erstellen, damit man für Tests sieht, was passiert?
ISAPI ist nur in der Theorie schneller, weil das ständige Laden entfällt. In der Praxis merkst du da keinen Unterschied, weil die exe vom IIS (oder
OS?) gecacht wird. Eventuell wirst du beim ersten Aufruf einen winzigen Unterschied merken (wir reden hier von ein par ms), aber alle folgenden Aufrufe sind praktisch genauso schnell. Der Stress den man mit einer
ISAPI DLL hat, ist mir das nicht wert.
Ja die CGI-EXE kannst du gleich aufrufen, nur halt die exe und nicht die
dll. webserver/app/deineapp.exe/... anstatt webserver/app/deineapp.dll/...
Wenn du die exe oder
dll nicht in der
URL haben willst, müsstest du noch eine Umschreibregel im IIS definieren, die sowas macht: webserver/app/deineapp/...
OK, was ist denn dann die best practice dafür?
Oder anders gefragt: Was wäre das Pendant zu session_start(); und den $_SESSION['xxx'] Variablen von PHP. Einfach irgendwelche Werte als globale Variablen serverseitig in Delphi speichern ist wohl keine gute Idee, da ja jeder Seitenauruf einen eigenen Thread startet, wenn ich das richtig verstanden habe. Außerdem muss sich der Seitenaufruf ja mit einer Art Session-ID identifizieren.
Kann ich dir nicht so recht beantworten, kenne mich da mit PHP nicht aus, da ich bisher alles auch mit Delphi machen konnte. Ich führe bei mir eine eigene "Session" (
DB-Tabelle mit weiteren Infos zur Sesssion), die ich als Session-ID Cookie und
URL-Parameter mitliefere. in der Sesssion Tabelle halte ch alle Daten fest, die mit der Session zu tun haben, also in dienem Fall die Werte deiner Variablen. Diese Sessions haben einen Timeout, nachdem diese ungültig werden. Dann wird eine neue erstellt und wieder als Cookie und
URL-Paramater geliefert. Will man die Session selber löschen (durch Abmelden des Benutzers), muss einfach ein leeres Session-ID Cookie gesendet werden. Dadurch ist die alte Session-ID im Browser nicht mehr gültig.