[ zurück ]   Bugreport beachten! 

Lassen Sie den ISAPI-Experten für Sie arbeiten!


Das immer wiederkehrende Grundgerüst eines ISAPI-Programms stellt einen gewissen Ballast dar. Es liegt also nahe, sich die Arbeit durch ein passendes Werkzeug zu erleichtern. Auf dieser Webseite erhalten Sie einen Experten, der Sie von der Routinearbeit entbindet.

Der ISAPI-Experte ist ein Zusatzprogramm, das sich nahtlos in die Entwicklungsumgebung von Delphi einklinkt. Er erweitert das Menü der Delphi-IDE um den Schablonentyp ISAPI-Extension. Nach der Installation des Experten erzeugen Sie über "Datei"-"Neu"-"Projekte"-"ISAPI-Extension" eine funktionierende Universalvorlage für ISAPI-DLLs. Das geschieht durch das simple Ausfüllen von 4 Registerkarten gemäß Abbildung.

Screen

Den Experten können Sie am Ende dieser Seite downloaden. Er hat keine automatische Installationsroutine. Installieren Sie ihn bitte von Hand folgendermaßen:
  1. Kopieren Sie die Expertendatei IsapiExp.dll in ein beliebiges Verzeichnis, vorzugsweise "\Programme\Borland\Delphi\Bin".
  2. Kopieren Sie die Hilfs-Units Isapi.PAS oder Isapi.DCU (Original Borland/Inprise) in das Verzeichnis "Delphi\Lib", sofern diese nicht sowieso schon auf Ihrem PC installiert sind.
  3. Kopieren Sie auch meine Unit IsapiHlp.PAS mit den Hilfsfunktionen nach "Delphi\Lib".
  4. Registrieren Sie den Delphi-Experten von Hand mit dem Programm REGEDIT. Starten Sie REGEDIT und
    1. Suchen Sie "HKEY_CURRENT_USER\Software\Borland\Delphi\..\Experts". (Falls ausnahmsweise nicht existent, dann den Schlüssel "Experts" bitte anlegen.)
    2. Legen Sie in "Experts" eine neue Zeichenfolge an:
      • Name: "IsapiExp"
      • Wert: "C:\Programme\Borland\Delphi\..\Bin\IsapiExp.dll"
        (Falls der Pfad Leerzeichen enthält, notfalls in " " einschließen)
    3. Schließen Sie REGEDIT.
  5. Starten Sie Delphi. Unter "Datei-Neu-Projekte" muß jetzt ein Icon für ISAPI-Extension vorhanden sein. Damit ist die Installation des Experten erfolgreich verlaufen.

Der Experte führt Sie nun auf vier Registerseiten zu neuen ISAPI-DLLs. Auf Seite 1 entscheiden Sie sich für den Ausgabetyp Ihrer Servererweiterung. Mit Seite 2 bestimmen Sie den Namen und Speicherort der Projektdatei und der Projektunit. Im dritten Schritt entscheiden Sie sich für den Wert der Extensions-Beschreibung lpszExtensionDesc. Diese wird, wie bereits besprochen, im Eintrittspunkt für das Laden der DLL in den Server zur Identifizierung benötigt. Der ebenfalls im Schritt 3 einzutragende Log-Informations-String ist für die Prozedur HttpExtensionProc bestimmt.

Am Ende des 4-seitigen Dialoges wird der Quelltext für ein entsprechendes Delphi-Projekt generiert und dieses für Sie geöffnet. Die Projektdatei *.DPR ist bereits in der endgültigen Form. Bitte programmieren Sie die von Ihnen beabsichtigte Datenausgabe ausschließlich in der Projektunit *.PAS! Sie finden diese unter "Ansicht"-"Units", falls sie nicht von vornherein sichtbar ist.

In der Projektunit ist bereits der Rahmen einer Prozedur IsapiAction vorbereitet. Hier erzeugen Sie individuell die von Ihnen geplanten Ausgabedaten der Servererweiterung. Am Ende von IsapiAction weisen Sie dem Rückgabestring s diese Daten zu. Das ist sogar für Nicht-Text-Daten möglich. Um die Weiterleitung Ihrer Ausgabe über das Web kümmert sich der bereits fertige Projektrahmen.

procedure IsapiAction(var s: String);
var FldList: TStringList;
begin
     :
 s:=                 {und so weiter ...}
     :
end;

Einfache und kommentierte Musterbeispiele zur Einführung in die Thematik sind unter den Namen IsapiTst (universeller ISAPI-Test) und IsapiTab (dynamisch generierte Tabelle mit Zufallsdaten) auf den vorangegangenen Webseiten dargestellt.

Bitte beachten Sie beim Programmieren zwei wichtige Regeln: Bitte beachten Sie auch folgende Besonderheit des ISAPI-Experten: Bugreport:

Bisher sind folgende Bugs aus frühen Versionen bekannt und in der aktuellen Version bereinigt:


Mein ISAPI-Experte zum Download:
Disk IsapiExp.zip Demoversion für Ausgabetyp text/html und image/x-xbitmap (154 kByte)
[ Seitenanfang ] [ ISAPI ]

J. Hummel,   2000