Alle oben genannten sind wahrscheinlich wahr. Der größte einzelne Faktor, der die Leistung der ASP.NET-Site beeinflusste, an der ich gearbeitet habe, war, dass alles, was damit zu tun hatte, alt war. Die .NET Framework-Version, die Server, die Datenbankinfrastruktur und der Code selbst alterten stark.
Ich vermute, dass viele ASP.NET-Sites eher Unternehmenssites sind. Diese bekommen nicht viel Liebe, da sie dazu neigen, nur zu arbeiten . Die Leute schreiben sie erst um, wenn sie müssen, was oft eine sehr lange Zeit ist.
Ich weiß , dass die Seite , dass ich mit dem verwendeten ASP.NET arbeitete eine riesige Speedup bekam nur durch auf die neueste Version des Frameworks zu bewegen, die viel effizienter Jiting und vernünftige Caching Standardwerte hatte.
Die andere Sache, die ich gesehen habe, dass viele ASP.NET-Sites nicht wissen, wie man richtig skaliert. Sie haben keinen ordnungsgemäßen Lastenausgleich eingerichtet, da das Entwerfen ihrer Website für die ordnungsgemäße Verwendung mit Webgärten in der Community nicht üblich oder gut dokumentiert ist. Wenn Sie Ihre Website nicht von Anfang an für Webgärten entwerfen, können Sie den integrierten Scale-Out-Mechanismus von IIS nicht verwenden. Der Software-Lastausgleich mit Windows NLB ist nicht sehr verbreitet und komplex zu verwalten. (Dies geht auf die Tatsache zurück, dass ASP.NET in der Regel Unternehmenssoftware ist und eher von dem Unternehmen verwaltet wird, das die Site betreibt, als von IT-Fachleuten, die wissen, wie man dieses Material richtig konfiguriert.)
Der Hardware-Lastausgleich mit F5s ist sehr, sehr teuer, scheint jedoch der häufigste und einfachste Mechanismus zum Skalieren von ASP.NET-Sites in Unternehmensnetzwerken zu sein. Ich denke, unter den Open-Source-Kunden wird erwartet, dass Sie von Anfang an einen Lastenausgleich mit frei verfügbaren Open-Source-Tools einbauen, die sich je nach Nutzung automatisch skalieren lassen. Dies ist in der ASP.NET-Welt nach dem, was ich gesehen habe, nicht üblich.