Ein Active-Server-Objekt erstellen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Active-Server-Seiten erstellen - Index


Ein Active-Server-Objekt ist ein Automatisierungsobjekt, das Zugriff auf Informationen über die gesamte ASP-Anwendung und die HTTP-Botschaften hat, die zur Kommunikation mit Browsern verwendet werden. Es wird von AspTlb.TASPObject oder AspTlb.TASPMTSObject abgeleitet (das wiederum ein Nachkomme von System.Win.ComObj.TAutoObject ist). Es unterstützt Automatisierungsprotokolle und macht sich für andere Anwendungen (oder für das Skript auf der Active-Server-Seite) verfügbar. Sie erstellen ein Active-Server-Objekt mit dem Experten für Active-Server-Objekte.

Bei dem Projekt für das Active-Server-Objekt kann es sich in Abhängigkeit von den Anforderungen um eine ausführbare Datei (.EXE) oder eine Bibliothek (.DLL) handeln. Sie sollten sich jedoch der Nachteile bei der Verwendung eines Out-of-Process-Servers bewusst sein.

So starten Sie den Experten für Active-Server-Objekte:

  1. Wählen Sie Datei > Neu > Weitere.
  2. Markieren Sie den Ordner ActiveX in der Kategorie Delphi-Projekte.
  3. Doppelklicken Sie auf das Symbol ActiveX-Bibliothek. Dadurch wird ein DLL-Projekt angelegt, in das Sie das Active-Server-Objekt aufnehmen können.
  4. Wählen Sie erneut Datei > Neu > Weitere.
  5. Doppelklicken Sie auf das Symbol Active-Server-Objekt in dem Ordner Delphi-Projekte.
  6. Geben Sie im Experten dem neuen Active-Server-Objekt einen Namen, und legen Sie das zu unterstützende Instanzenbildungs- und Threading-Modell fest.

Diese Informationen beeinflussen die Art und Weise, wie Ihre Objekte aufgerufen werden können. Bei der Erstellung der Implementierung müssen Sie darauf achten, dass diese dem Modell entspricht (z.B. Vermeiden von Thread-Konflikten). Was das Active-Server-Objekt einmalig macht, ist die Fähigkeit, auf Informationen über die ASP-Anwendung und die HTTP-Botschaften zuzugreifen, die zwischen der Active-Server-Page und Client-Web-Browsern ausgetauscht werden. Auf diese Informationen wird mit Hilfe der ASP-Spezifikation zugegriffen. Im Experten können Sie durch Festlegen des Active-Server-Typs angeben, wie Ihr Objekt auf diese zugreift.

  • Wenn Sie mit IIS 3 oder IIS 4 arbeiten, verwenden Sie Ereignismethoden auf Seitenebene. Bei diesem Modell implementiert Ihr Objekt die Methoden OnStartPage und OnEndPage, die beim Laden und Entladen der Active-Server-Seite aufgerufen werden. Beim Laden des Objekts ruft es automatisch eine IScriptingContext-Schnittstelle ab, die für den Zugriff auf die ASP-Spezifikation verwendet wird. Diese Schnittstellen werden wiederum als von der Basisklasse (TASPObject) geerbte Eigenschaften offen gelegt.
  • Wenn Sie mit IIS 5 oder höher arbeiten, verwenden Sie den Objektkontexttyp. Bei diesem Modell ruft das Objekt eine IObjectContext-Schnittstelle ab, die für den Zugriff auf die ASP-Spezifikation verwendet wird. Diese Schnittstellen werden wiederum als Eigenschaften in der geerbten Basisklasse (TASPMTSObject) offen gelegt. Ein Vorteil dieses letzten Ansatzes besteht darin, dass Ihr Objekt Zugriff auf alle anderen Dienste hat, die über IObjectContext zur Verfügung stehen. Um auf die IObjectContext-Schnittstelle zuzugreifen, rufen Sie einfach GetObjectContext (das in der Unit mtx definiert ist) wie folgt auf: ObjectContext := GetObjectContext;

Sie können im Experten angeben, eine einfache ASP-Seite als Host für Ihr neues Active-Server-Objekt zu generieren. Die generierte Seite liefert ein minimales Skript (in VBScript), das Ihr Active-Server-Objekt auf der Basis seiner ProgID erstellt und angibt, an welcher Stelle Sie seine Methoden aufrufen können. Dieses Skript ruft Server.CreateObject auf, um das Active-Server-Objekt zu starten.

Hinweis: Obwohl das generierte Testskript VBScript verwendet, können Active-Server-Pages auch mit Jscript erstellt werden.

Wenn Sie den Experten beenden, wird dem aktuellen Projekt eine neue Unit hinzugefügt, die die Definition für das Active-Server-Objekt enthält. Darüber hinaus fügt der Experte ein Typbibliotheksprojekt hinzu und öffnet den Typbibliothekseditor. Nun können Sie die Eigenschaften und Methode der Schnittstelle über die Typbibliothek offen legen, wie unter Die Schnittstelle eines COM-Objekts definieren beschrieben. Wenn Sie die Implementierung der Eigenschaften und Methoden des Objekts erstellen, können Sie die ASP-Spezifikation nutzen, um Informationen über die ASP-Anwendung und die HTTP-Botschaften abzurufen, die zur Kommunikation mit Browsern verwendet werden.

Das Active-Server-Objekt implementiert wie jedes andere Automatisierungsobjekt eine duale Schnittstelle, die sowohl frühe Bindung (zum Zeitpunkt des Compilierens) über die Schnittstelle vtable als auch späte Bindung (Laufzeit) über die Schnittstelle IDispatch unterstützt.

Siehe auch