it-swarm.com.de

Was ist der Unterschied zwischen "klassischem" und "integriertem" Pipeline-Modus in IIS7?

Ich habe letzte Nacht eine ASP.NET MVC-Anwendung bereitgestellt und festgestellt, dass die Bereitstellung mit IIS7 im integrierten Modus weniger aufwändig ist. Meine Frage ist, was ist der Unterschied? Und was bedeutet die Verwendung des einen oder anderen?

479
Jon Erickson

Der klassische Modus (der einzige Modus in IIS6 und darunter) ist ein Modus, in dem IIS nur mit ISAPI-Erweiterungen und ISAPI-Filtern direkt funktioniert. In diesem Modus ist ASP.NET lediglich eine ISAPI-Erweiterung (aspnet_isapi.dll) und ein ISAPI-Filter (aspnet_filter.dll). IIS behandelt ASP.NET nur als externes Plugin, das in ISAPI implementiert ist, und arbeitet damit wie eine Black Box (und nur, wenn dies der Fall ist) In diesem Modus unterscheidet sich ASP.NET nicht wesentlich von PHP oder anderen Technologien für IIS.

Der integrierte Modus hingegen ist ein neuer Modus in IIS7, in dem die IIS) -Pipeline genau wie die ASP.NET-Anforderungspipeline integriert ist. ASP.NET kann jede Anforderung anzeigen ASP.NET wird nicht mehr als externes Plug-in behandelt, sondern vollständig in IIS integriert. In diesem Modus verfügen ASP.NET HttpModules im Prinzip über fast die gleiche Leistung wie ein ISAPI-Filter hätte und ASP.NET HttpHandlers kann fast die gleichen Funktionen wie eine ISAPI-Erweiterung haben. In diesem Modus ist ASP.NET im Grunde ein Teil von IIS.

633
Mehrdad Afshari

Integrierter Anwendungspoolmodus

Wenn sich ein Anwendungspool im integrierten Modus befindet, können Sie die integrierte Anforderungsverarbeitungsarchitektur von IIS und ASP.NET nutzen. Wenn ein Arbeitsprozess in einem Anwendungspool eine Anforderung empfängt, durchläuft die Anforderung eine geordnete Liste von Ereignissen. Jedes Ereignis ruft die erforderlichen systemeigenen und verwalteten Module auf, um Teile der Anforderung zu verarbeiten und die Antwort zu generieren.

Das Ausführen von Anwendungspools im integrierten Modus bietet mehrere Vorteile. Zunächst werden die Anforderungsverarbeitungsmodelle von IIS und ASP.NET in ein einheitliches Prozessmodell integriert. Dieses Modell beseitigt Schritte, die zuvor in IIS und ASP.NET dupliziert wurden, z. B. die Authentifizierung. Darüber hinaus ermöglicht der integrierte Modus die Verfügbarkeit verwalteter Funktionen für alle Inhaltstypen.

Klassischer Anwendungspoolmodus

Wenn sich ein Anwendungspool im klassischen Modus befindet, verarbeitet IIS 7.0 Anforderungen wie im Arbeitsprozess-Isolationsmodus IIS 6.0. ASP.NET-Anforderungen durchlaufen zunächst systemeigene Verarbeitungsschritte in IIS und werden dann zur Verarbeitung von verwaltetem Code in der verwalteten Laufzeit an Aspnet_isapi.dll weitergeleitet. Schließlich wird die Anforderung über IIS zurückgeleitet, um die Antwort zu senden.

Diese Trennung der Anforderungsverarbeitungsmodelle IIS und ASP.NET führt zu einer Verdoppelung einiger Verarbeitungsschritte, z. B. Authentifizierung und Autorisierung. Darüber hinaus stehen Funktionen für verwalteten Code, z. B. Formularauthentifizierung, nur für ASP.NET-Anwendungen oder Anwendungen zur Verfügung, für die Sie alle Anforderungen per Skript zugeordnet haben, die von aspnet_isapi.dll verarbeitet werden sollen.

Testen Sie Ihre vorhandenen Anwendungen auf Kompatibilität im integrierten Modus, bevor Sie eine Produktionsumgebung auf IIS 7.0 aktualisieren und Anwendungen im integrierten Modus Anwendungspools zuweisen. Sie sollten eine Anwendung nur dann zu einem Anwendungspool im klassischen Modus hinzufügen, wenn die Anwendung im integrierten Modus nicht funktioniert. Beispielsweise kann Ihre Anwendung von einem Authentifizierungstoken abhängig sein, das von IIS an die verwaltete Laufzeit übergeben wird, und aufgrund der neuen Architektur in IIS 7.0 bricht der Prozess Ihre Anwendung.

Entnommen aus: Was ist der Unterschied zwischen DefaultAppPool und Classic .NET AppPool in IIS7?

Ursprüngliche Quelle: Einführung in IIS Architektur

110
BrainCoder

IIS 6.0 und frühere Versionen:

ASP.NET wurde über eine ISAPI-Erweiterung, eine C-API (C Programming Language Based API) in IIS) integriert und enthüllte sein eigenes Anwendungs- und Anforderungsverarbeitungsmodell.

Auf diese Weise wurden zwei separate Server-Pipelines (Anforderungs-/Antwort-Pipelines) verfügbar gemacht, eine für systemeigene ISAPI-Filter und Erweiterungskomponenten und eine für verwaltete Anwendungskomponenten. ASP.NET-Komponenten werden vollständig in der ASP.NET-ISAPI-Erweiterungsblase UND NUR für Anforderungen ausgeführt, die ASP.NET in der Skriptzuordnung IIS=) zugeordnet sind Aufbau.

Anforderungen an Nicht-ASP.NET-Inhaltstypen: - Bilder, Textdateien, HTML-Seiten und skriptlose ASP Seiten, wurden von IIS= oder einer anderen ISAPI verarbeitet Erweiterungen und waren für ASP.NET NICHT sichtbar.

Die Haupteinschränkung dieses Modells bestand darin, dass Dienste, die von ASP.NET-Modulen und benutzerdefiniertem ASP.NET-Anwendungscode bereitgestellt wurden, NICHT für Nicht-ASP.NET-Anforderungen verfügbar waren .

Was ist eine SCRIPT MAP?

Skriptzuordnungen werden verwendet, um Dateierweiterungen dem ISAPI-Handler zuzuordnen, der ausgeführt wird, wenn dieser Dateityp angefordert wird. Die Skriptzuordnung verfügt außerdem über eine optionale Einstellung, mit der überprüft wird, ob die der Anforderung zugeordnete physische Datei vorhanden ist, bevor die Anforderung verarbeitet werden kann

Ein gutes Beispiel kann sein seen here

IIS 7 und höher

IIS 7.0 und höher wurde von Grund auf überarbeitet, um eine brandneue C++ API-basierte ISAPI bereitzustellen.

IIS 7.0 und höher integriert die ASP.NET-Laufzeitumgebung in die Kernfunktionalität des Webservers und stellt eine einheitliche (einzelne) Anforderungsverarbeitungspipeline bereit, die sowohl systemeigenen als auch verwalteten Komponenten (IHttpModules) ausgesetzt ist.

Dies bedeutet, dass IIS 7 Anforderungen verarbeitet, die für einen beliebigen Inhaltstyp eingehen, wobei NON ASP.NET Modules / native IIS modules und ASP.NET modules Bereitstellung der Anforderungsverarbeitung in allen Phasen Dies ist der Grund, warum NON ASP.NET-Inhaltstypen (.html, statische Dateien) von .NET-Modulen verarbeitet werden können.

  • Sie können neue verwaltete Module erstellen ( IHttpModule ), die für alle Anwendungsinhalte ausgeführt werden können. und stellte Ihrer Anwendung einen erweiterten Satz von Anforderungsverarbeitungsdiensten zur Verfügung.
  • Neue verwaltete Handler hinzufügen ( IHttpHandler )
11
R.C

Im klassischen Modus funktioniert IIS h ISAPI-Erweiterungen und ISAPI-Filter direkt. Und verwendet zwei Pipe-Linien, eine für systemeigenen Code und eine für verwalteten Code. Sie können das einfach im klassischen Modus sagen IIS 7.x funktioniert genauso wie IIS 6 und Sie erhalten keine zusätzlichen Vorteile aus den Funktionen von IIS 7.x).

Im integrierten Modus sind IIS und ASP.Net nicht wie im klassischen Modus nur von zwei DLLs auf Asp.net abhängig, sondern eng miteinander verbunden.

5
Mian