Ich habe kürzlich begonnen, mit der Fähigkeit von IIS herumzuspielen, einen Warmup-Schrittschritt auf meine Webanwendung anzuwenden, indem ich die IProcessHostPreloadClient
-Schnittstelle benutze (siehe hier für eine Anleitung, wie man das einrichtet) . Das funktionierte großartig, oder zumindest dachte ich es, denn eines der 'cleveren' Dinge, die ich gemacht habe, war, meine Ansichten zu laden, indem ich meine Controller überspringe und sie rendere.
Nach ein wenig Versuch und Irrtum habe ich es zur Arbeit gebracht und alles war gut. Bis ich bemerkte, dass die Validierung für mein System nicht mehr funktionierte, weder die Client- noch die Servervalidierung. Ich gehe davon aus, dass die Validierung normalerweise an die Ansichten angeschlossen wird, wenn MVC zum ersten Mal eine Ansicht aufruft und dies fehlgeschlagen ist. Hat jemand eine Idee, wie dies in meine Lösung einbezogen werden könnte oder vielleicht auf eine andere Art und Weise?
Der Code:
%Vor%Das Problem ist nicht mit dem Code in der Frage, sondern der Zeitpunkt, zu dem es ausgeführt wird. Das Verschieben des Codes in eine Aktion ermöglicht es mir, den Aufwärmschritt ohne Probleme durchzuführen. In meinem Fall werde ich den Installationsvorgang nur aufrufen, um die Aufwärmaktion aufzurufen, nachdem das System konfiguriert wurde.
Nicht direkte Antwort auf Ihre Frage , aber ich denke, Sie sollten sich Vorkompilieren von MVC Razor Ansichten mit RazorGenerator von David Ebbo
Ein Grund dafür ist, dass Sie auf Ihrer Website keinen Runtime-Treffer erleiden startet, da zur Laufzeit nichts mehr kompiliert werden muss. Das kann sein signifikant in Websites mit vielen Ansichten.
Es gibt ein neues Modul von Microsoft, das Teil von IIS 8.0 ist und das vorherige Aufwärmmodul ersetzt. Dieses Anwendungsinitialisierungsmodul für IIS 7.5 kann separat heruntergeladen werden.
Das Modul erstellt eine Aufwärmphase, in der Sie eine Anzahl von Anforderungen angeben können, die abgeschlossen sein müssen, bevor der Server Anforderungen annimmt. Diese Anforderungen führen alle Ihre Ansichten auf eine robustere Weise aus und kompilieren sie als das, was Sie erreichen möchten.
Ich habe eine ähnliche Frage mit weiteren Einzelheiten beantwortet unter Aufwärmen einer ASP.NET MVC-Anwendung auf IIS 7.5? .
Tags und Links asp.net-mvc .net c# warm-up