IIS 6.0 und frühere Versionen :
ASP.NET integriert sich über eine ISAPI-Erweiterung, eine C-API (basiert auf der C-Programmiersprache) mit dem IIS und stellt sein eigenes Anwendungs- und Anforderungsverarbeitungsmodell bereit.
Dies hat effektiv zwei separate Serveranforderungs- bzw. -antwort-Pipelines offenbart, eine für native ISAPI-Filter und Erweiterungskomponenten und eine weitere für verwaltete Anwendungs-Komponenten. ASP.NET-Komponenten würden vollständig innerhalb der ASP.NET-ISAPI-Erweiterungs-Blase ausgeführt UND NUR für Anfragen, die auf ASP.NET in der IIS-Skriptzuordnungskonfiguration abgebildet sind.
Anfragen für nicht-ASP.NET-Inhaltstypen wie Bilder, Textdateien, HTML-Seiten und skriptlose ASP-Seiten wurden von IIS oder anderen ISAPI-Erweiterungen verarbeitet und waren für ASP.NET NICHT sichtbar.
Die Hauptbegrenzung dieses Modells war, dass die von den ASP.NET-Modulen und benutzerdefiniertem ASP.NET-Anwendungscode bereitgestellten Dienste NICHT für nicht-ASP.NET-Anfragen verfügbar waren
Was ist eine SCRIPT MAP ?
Skriptzuordnungen werden verwendet, um Dateierweiterungen mit dem ISAPI-Handler zu verknüpfen, der ausgeführt wird, wenn dieser Dateityp angefordert wird. Die Skriptzuordnung hat auch eine optionale Einstellung, die überprüft, ob die physische Datei, die mit der Anforderung verknüpft ist, vorhanden ist, bevor die Anforderung verarbeitet wird
Ein gutes Beispiel kann hier gesehen werden
IIS 7 und höher
IIS 7.0 und höher wurden von Grund auf neu entwickelt, um eine brandneue C++ API-basierte ISAPI bereitzustellen.
IIS 7.0 und höher integrieren die ASP.NET-Laufzeit mit der Kernfunktionalität des Webservers, wodurch eine vereinheitlichte(einzige) Anforderungsverarbeitungs-Pipeline bereitgestellt wird, die sowohl nativen als auch verwalteten Komponenten , bekannt als Module (IHttpModules), offenbart.
Dies bedeutet, dass der IIS 7 Anfragen für jeden Inhaltstyp verarbeitet, sowohl mit NICHT-ASP.NET-Modulen / nativen IIS-Modulen
als auch ASP.NET-Modulen
, die in allen Phasen die Anforderungsverarbeitung bereitstellen Deshalb können auch NICHT-ASP.NET-Inhaltstypen (.html, statische Dateien ) von .NET-Modulen verarbeitet werden.
- Sie können neue verwaltete Module erstellen (
IHttpModule
), die die Fähigkeit haben, für alle Anwendungs-Inhalte auszuführen und einen erweiterten Satz von Anforderungsverarbeitungsdiensten für Ihre Anwendung bereitzustellen.
- Neue verwaltete Handler hinzufügen (
IHttpHandler
)
11 Stimmen
Wie war es weniger Arbeit, mit dem integrierten Modus im Vergleich zum klassischen Modus bereitzustellen? Nur aus Neugier.
10 Stimmen
@Peter: URLs ohne Erweiterung müssen im klassischen Modus manuell zugeordnet werden.
3 Stimmen
Selbst im MVC Global.asax lauten die Hinweise: Für Anweisungen zur Aktivierung des klassischen Modus von IIS6 oder IIS7 besuchen Sie go.microsoft.com/?LinkId=9394801. Oder Sie können einfach den integrierten Modus aktivieren und die System.Web.Mvc-Assembly einbinden, dann funktioniert alles problemlos.