IIS7 Integrierte vs klassische Pipeline-die mehr ASP.NET-Threads verwendet?




iis-7 integrated-pipeline-mode (2)

Ich würde sagen, du hast Recht, aber ich betrachte es aus einer anderen Perspektive.

Müssen Sie die Anforderungen für die Nicht-ASPX-Seiten verarbeiten? Zum Beispiel, um sie zu protokollieren oder um die Antwort zu verbieten, wenn eine Bedingung nicht erfüllt ist.

Wenn Sie diese Verarbeitungsfunktion benötigen, verwenden Sie die integrierte Pipeline. Wenn nicht, verwenden Sie die klassische Pipeline.

Mit der integrierten Pipeline werden alle Anforderungen über ASP.NET einschließlich Bildern und CSS weitergeleitet.

In der klassischen Pipeline werden dagegen nur Anforderungen für ASPX-Seiten standardmäßig über ASP.NET übergeben.

Könnte die integrierte Pipeline die Thread-Nutzung beeinträchtigen?

Angenommen, ich möchte 500 MB Binärdatei von einem IIS-Server anfordern:

  • Bei einer integrierten Pipeline würde ein ASP.NET-Worker-Thread für den Binärdownload verwendet werden (richtig?).
  • Bei einer klassischen Pipeline wird die Anforderung direkt von IIS bereitgestellt, sodass kein ASP.NET-Thread verwendet wird.

Das ist für mich eine klassische Pipeline, da ich so viele Threads wie möglich haben möchte, um ASPX-Seiten zu bedienen.

Bin ich hier komplett abgestiegen?


Wenn Sie sich in IIS 7 mit machine.config, web.config und applicationHost.config befassen, können Sie feststellen, dass die Art und Weise, wie statischer Inhalt geliefert wird, sich nicht ändert, wenn Sie zwischen klassischer und integrierter Pipeline wechseln. Das einzige, was sich ändert, ist, ob Anforderungen, die asp.net zugeordnet sind, ein verwaltetes Modul oder das native ISAPI-Filtermodul passieren.

Das einzige, was die Leistung beeinträchtigen kann, ist, wenn Sie die Standardeinstellungen für Autorisierungsmodule und alle benutzerdefinierten Module ändern, die Sie hinzugefügt haben, wenn Sie Anfragen für statischen Inhalt bearbeiten. Und selbst hier ist der Overhead wahrscheinlich vernachlässigbar.

Daher wäre ein geeigneterer Benchmark IIS 6 gegenüber IIS 7, und ich vermute, dass IIS 7 der klare Gewinner wäre.





integrated-pipeline-mode