ASP - Active Server Pages
Wenn man den .NET Entwicklern glauben darf, dann ist ASP mittlerweile eine sehr alte und genauso tote Technik und wird durch ASP.NET ersetzt. Seit dem das Visual Studio Web Developer Express Edition kostenfrei verfügbar ist, stehen die Zeichen auch für Administratoren auf "Wechsel". Trotzdem gibt viel immer noch einige kleine Dinge, die auch in ASP sehr schnell mit einem "Notepad" erstellt und über einen Browser auf dem Webserver gestartet werden können. Daher möchte ich hier in aller Kürze eine Einführung in ASP geben. Schließlich nutzet ich auch ASP in einigen Beispielen wie OWARedirect oder CheckRUS.
ASP Grundlagen
Wenn man vor den Zeiten von ASP.NET dynamische Webseiten ausliefern wollte, dann gab es zwei prinzipielle Vorgehensweisen
- CGI-Skripte
Der Webserver ruft anhand der URL ein Programm auf, welches dann anhand übergebener Daten (meist Umgebungsvariablen) die entsprechenden Seiten aufbereitet hat und per STDOUT an den Webserver zu Auslieferung gesendet hat. Jeder einzelne Aufruf einer Seite erzeugte eine neue Programminstanz und entsprechend langsam war dieses Verfahren auf Windows. Mit Fast-CGI und Programme, die permanent gelaufen sind und sich anders in den Webserver eingebunden haben, konnte man das etwas umgehen. Um die Darstellung von den Daten zu trennen, haben viele CGI-Programme die Vorlagen aus Dateien gelesen und ihre Daten quasi per "Suchen und Ersetzen" darin ausgetauscht. - Seiteninterpreter
Der IIS kann aber auch eine vorgegebene Seite nehmen und darin eingebetteten Code ausführen. Im unterschied zu CGI wird also nicht ein Programm gestartet, sondern die Webseite interpretiert. An bestimmten Stellen wird über besondere Tags dem Webserver mitgeteilt, dass nun Code zum Ausführen kommt. Der Code ist also in der Seite, die auch die Anzeige steuert, enthalten.
Normalerweise hat eine Webseite eine klare Struktur. Mit der ASP-Erweiterung werden weitere Funktionen genutzt, die der Webserver, bzw. das ASP-Modul darin interpretiert. Das funktioniert sogar recht schnell, da der Code beim ersten Start kompiliert wird und dann im Speicher verbleibt. Outlook Web Access von Exchange 5.5, 2000 und 2003 nutzen sehr umfangreich ASP-Seiten. Auch andere Produkte und Dienste von Microsoft und Drittherstellern nutzten ASP. So deutet die Erweiterung "ASP" an einer URL auf den Einsatz von ASP hin. Aber auch andere Erweiterungen lassen sich entsprechend registrieren. Auch andere Skriptinterpreter wie Perl oder PHP können im IIS eingebunden werden.
ASP Testen ohne Hello World
ASP testen Sie am besten durch eine ASP-Seite, die die LaufzeitUmgebung ausgibt. Auf der Seite http://www.asphelper.de/tip/tip4_alle_request_servervariables_auflisten.asp ist ein kurzes Beispiel, welches ich noch etwas weiter vereinfacht habe.
<html> <head><title>ServerVariablen</title></head> <body> <div class=“table-responsive“><table> <% for Each item in Request.ServerVariables value = Request.ServerVariables(item) if value="" then value="nicht definiert" end if %> <tr> <td><% Response.Write(item) %></td> <td><% Response.Write(value) %></td> </tr> <% Next %> </table> </body> </html>
Man erkennt deutlich die HTML-Formatierungen. Allerdings sieht man auch, dass sich innerhalb der "<% %>" Tags Code befindet. öffnet man solch eine ASP-Datei mit einem Editor, der auch Code sichtbar macht, dann erkennt man die Struktur etwas leichter. Trotzdem bleibt es eine mühselige Aufgabe für Entwickler in ASP Code zu entwickeln. Um Fehler zu reduzieren sollten sie unbedingt die "option explicit" setzen, damit Fehler bei Variablen sofort gemeldet werden.
Kopieren Sie diese Datei einfach in das Verzeichnis C:\inetpub\wwroot als "test.asp" und rufen Sie diese einfach per Browser auf http//:servername/test.asp auf. Sie sollten in etwa folgende Ausgabe sehen:
Ein Tippfehler im Code wird z.B.: wie folgt ausgegeben
Leider sind echte Codefehler nicht so einfach zu finden und zu beheben
ASP und IIS
Natürlich ist auch ASP beim Webserver umfangreich konfigurierbar. Zum einen ist die Komponente ASP beim IIS optional zu installieren. Das geht über die Systemsteuerung - Software und dann "Windows Komponenten hinzufügen". Untern dem Punkt "Anwendungsserver" finden sich dann die Internetinformationsdienste, über die man mit WWW-Dienst kommt. Hierunter sind dann die "Active Server Pages" zu installieren.
Nach der Installation sollten sie prüfen, ob die Erweiterungen auch aktiviert sind.
Und dann können sie im entsprechenden virtuellen Verzeichnis die ASP-Funktion auch aktivieren. Pro Verzeichnis kann ASP dann individuell aktiviert werden (Skripts ausführen)
Bitte aktivieren Sie nicht das Feld "Skriptzugriff", da ansonsten ein Anwender den Source-Code einsehen und Schwachstellen aufdecken könnte. Besonders wenn Sie von ASP-Seiten auf andere Ressourcen (z.B. Datenbaken) zugreifen und dazu die Anmeldedaten im Skript interlegt haben, ist dies höchst gefährlich. In der Konfiguration können Sie dann die Bindung von ASP an die ASP.DLL prüfen.
Einschränkungen
- Schlechter Editor
Es fehlt eine EntwicklungsUmgebung, wie man sie mit .NET oder auch den früheren Visual Basic schon länger gewohnt ist. ASp ist nun mal wie VBScript eine interpretierte Sprache ohne strenge Typdefinitionen. Insofern sind Editoren mit Syntax-Hervorhebung oft schon das höchste der Gefühle - Mühseliges Debugging
Aus dem gleichen Grund gibt es nicht wirklich einen "Debugger" der eine Schrittweise Abarbeitung erlaubt. Meist behilft man sich mit "Debugausgaben" auf dem Bildschirm oder in Textdateien, um den Code zu entwanzen. - Code = Format
Wer nicht mit eigenen COM-Objekten arbeitet, bei dem sind die Programmierlogik und die Anzeige in einer Datei vereint. Das macht es natürlich einfach, weil die ASP-Seite alles an einer Stelle kombiniert. In vielen Projekten sind aber die Aufgaben der Webdesigner und Code-Entwickler getrennt und dann ist es schon sehr aufwändig, als Entwickler in einer HTML-Seite eines Designers, seinen Code effektiv zu pflegen.
Insofern ist es wirklich absehbar, dass die ASP-Funktionalität immer seltener genutzt wird. Vielleicht sollten Sie sich wirklich mal 20 die Visual Studio Express Editionen von http://www.microsoft.com/express/ herunter laden und die Visual Web Developer Edition einfach auf allen Server vorhalten.
Weitere Links
- ASP.NET
- http://www.aspfaqs.com/aspfaqs/ShowFAQ.asp?FAQID=149
- http://www.4guysfromrolla.com/webtech/090199-1.shtml
- http://www.4guysfromrolla.com/webtech/RegularExpressions.shtml
- http://www.aspfaqs.com/demos/spaceStripper1.asp
- 253568 HOW TO: use ADSI to Access Exchange User Data from an ASP Page
- 251390 HOWTO: Find Exchange Recipients Associated With an NT Account
- Auswertung von HTML Formularen mit ASP
http://www.aspheute.com/artikel/20000406.htm - Telefonbuch per ASP
http://www.windowsserverfaq.org/?URL=/faq/PhoneBook.asp - ASP-Sample um alle Request-Felder anzuzeigen
http://www.asphelper.de/tip/tip4_alle_request_servervariables_auflisten.asp - Umfangreiche kostenfreie Icon-Sammlung
http://www.famfamfam.com/lab/icons/ - Blog:: Guide:: 405 Error Fix:: IIS Setting up XML to return text/xml
instead of text/html on http requests
http://www.bluestudios.co.uk/blog/?p=1083