Lassen Sie uns zunächst darüber sprechen, wie Asp.net funktioniert.
Die konkrete Beschreibung lautet wie folgt: Zunächst fordert der Kunde die WEB-Seite an. Dann sucht der WEB-Dienst nach der Anweisungsdatei (.aspx), und diese wird von der dynamischen Linkbibliothek aspnet_isapi.dll verarbeitet. Der Asp.net-Code wird dann zur Kompilierung an die Common Language Runtime gesendet. Der HTML-Stream wird dann an den Browser zurückgegeben und geordnet. Schließlich verarbeitet der Browser den HTML-Code und zeigt die Seite an.
Was ist ISAPI?
Zu Beginn des Internetzeitalters hatten Kunden nur sehr begrenzte Anforderungen; sie brauchten lediglich .htm-Dateien. Mit der Zeit erweiterten sich die Kundenanforderungen jedoch über die in .htm-Dateien oder statischen Dateien enthaltene Funktionalität hinaus.
Entwickler müssen die Funktionalität des Webservers erweitern oder erweitern. Anbieter von Webservern haben unterschiedliche Lösungen entwickelt, aber alle verfolgen das gleiche Prinzip, bestimmte Komponenten in den Webserver einzufügen. Alle Webserver-Zusatztechnologien ermöglichen es Entwicklern, Komponenten zu erstellen und einzubinden, um die Webserver-Funktionalität zu verbessern. Microsoft schlug ISAPI (Internet Server API) vor, Netscape schlug NSAPI (Netscape Server API) vor und so weiter. ISAPI ist eine wichtige Technologie, die es uns ermöglicht, die Fähigkeiten von ISAPI-kompatiblen Webservern zu verbessern (IIS ist ein ISAPI-kompatibler Webserver). Um dies zu erreichen, nutzen wir folgende Komponenten:
1. ISAPI-Erweiterung: Die ISAPI-Erweiterung wird mithilfe der Win32 Dynamic Link Library implementiert. Sie können sich eine ISAPI-Erweiterung wie eine normale Anwendung vorstellen. Das Verarbeitungsziel der ISAPI-Erweiterung ist eine HTTP-Anfrage.
2. ISAPI-Filter: Jedes Mal, wenn der Client eine Anfrage an den Server stellt, muss die Anfrage den Filter durchlaufen. Der Client muss in der Anfrage keinen Filter angeben, sondern sendet die Anfrage einfach an den Webserver, und der Webserver leitet die Anfrage an den entsprechenden Filter weiter. Als nächstes kann der Filter die Anfrage ändern, einige Anmeldevorgänge durchführen usw.
ASP.NET-Anforderungsverarbeitungsprozess:
Der ASP.NET-Anforderungsverarbeitungsprozess basiert auf dem Pipeline-Modell, bei dem ASP.NET http-Anforderungen an alle Module in der Pipeline weiterleitet. Jedes Modul empfängt HTTP-Anfragen und hat die volle Kontrolle. Module können Anfragen so bearbeiten, wie sie es für richtig halten. Sobald die Anfrage alle HTTP-Module durchlaufen hat, wird sie schließlich vom HTTP-Handler verarbeitet. Der HTTP-Handler verarbeitet die Anfrage teilweise und das Ergebnis durchläuft erneut das HTTP-Modul in der Pipeline.
ISAPI-Filter:
IIS selbst unterstützt keine dynamischen Seiten, was bedeutet, dass es nur den Inhalt statischer HTML-Seiten unterstützt. Beispielsweise verarbeitet IIS diese Tags nicht, sondern behandelt sie as Der Kompositionstext wird ohne Bearbeitung an den Kunden gesendet. Um dieses Problem zu lösen. IIS verfügt über einen Mechanismus namens ISAPI-Filter, der eine Standardkomponente (COM-Komponente) ist.
Wenn sich der Asp.net-Dienst bei IIS registriert, registriert er die Dateierweiterungen, die jede Erweiterung verarbeiten kann, in IIS (z. B. *.ascx, *.aspx usw.). Nachdem die Erweiterung gestartet wurde, verarbeitet sie Dateien, die von IIS nicht gemäß der definierten Methode verarbeitet werden können, und übergibt dann die Steuerung an einen Prozess, der speziell den Code verarbeitet, sodass dieser Prozess mit der Verarbeitung des Codes beginnen, Standard-HTML-Code generieren und einfügen kann Fügen Sie diese Codes nach der Generierung dem ursprünglichen HTML hinzu und geben Sie schließlich das vollständige HTML an IIS zurück. Anschließend sendet IIS den Inhalt an den Client.