Ich habe ein großes Problem mit der Leistung auf einer MVC-Site, die wir entwickeln. Wenn die Site in Azure gehostet wird, benötigt die Rendering-Phase von Ansichten beim ersten Laden einer Seite sehr viel Zeit. Wir sprechen von 15 bis 60 Seiten pro Seite. Nachfolgende Ladevorgänge derselben Seite sind danach nett und schnell, wie man erwarten würde. Dies ist eine Spur von Glimpse für einen Treffer auf einer Seite zum ersten Mal:
Wie Sie in der Grafik sehen können, scheint das Razor-Rendering der Haupttäter zu sein. Ich habe viele Dinge über die Vorkompilierung von Razor-Ansichten gelesen und ich habe versucht, dies zu implementieren, aber das hat für uns überhaupt keinen Unterschied gemacht. Ich bin auch mit den Entwicklern der Azure Web App beschäftigt, die mit dem Finger auf Glimpse hingewiesen haben, aber ich habe die App ohne Glimpse ausprobiert und es ist immer noch so langsam wie immer.
Ich stehe hier fest ... irgendwelche Ideen?
Ich habe eine Lösung für eine schnellere Startzeit von MVC-Apps gefunden, am bemerkenswertesten bei Azure App-Diensten. Der Trick besteht darin, die Ansichten vorab zu kompilieren, sodass die App-Dienste dies nicht für jede Ansicht tun müssen, die zum Zeitpunkt der Anforderung benötigt wird.
Die Zusammenfassung meiner Ergebnisse:
Fügen Sie dies den MSBuild Argumenten hinzu und Sie erhalten eine ASP.NET MVC 5, die schneller startet und jede neue Seite schneller lädt.
%Vor%Weitere Informationen finden Sie hier: Ссылка
Ist es das erste Mal, dass Sie jede Seite laden, oder wenn Sie das erste Mal nach Inaktivität auf die Website klicken?
Der IIS braucht etwas Zeit, um hochzufahren, nachdem Sie neue Dateien in den App-Container hochgeladen haben. Die erste Seite, nachdem Sie die App aktualisiert haben, wird langsamer. Auch Azure Web Apps werden nach einer gewissen Inaktivität ausgetrocknet. Dies führt auch dazu, dass der erste Seitentreffer sehr langsam ist, wenn auf die Seite nicht lange zugegriffen wurde.
Um dies zu verhindern, finden Sie in den Anwendungseinstellungen für die Webanwendung eine Einstellung mit dem Namen Immer ein , die Ihre Seite im Prinzip alle paar Minuten anpingt App hydratisiert und ansprechend.
Tags und Links asp.net-mvc azure razor performance asp.net-mvc-5