it-swarm.com.de

IIS Express localhost wird für die erste Anforderung sehr langsam geladen

Bitte überprüfen Sie unten die Liste der Dinge, die ich vor dem Schließen als Duplikat versucht habe.


Das Problem:

  • Ich erstelle eine brandneue ASP.NET MVC-Anwendung, erstelle die Anwendung und führe sie aus -> Das Laden der Seite dauert zwischen 20-30 Sekunden.
  • Jedes Mal, wenn ich die Anwendung neu aufbaue und dann versuche, die Seite zu laden, dauert es 20-30 Sekunden, auch wenn ich dies unmittelbar nach dem vorherigen Build mache (d. H. Kein Leerlauf-Timeout-Problem, denke ich?).

Ich habe seit gestern mit diesem Problem zu kämpfen, ich habe jeden Post/Artikel gelesen, den ich dazu ohne Erfolg finden konnte. Ich muss allerdings zugeben, dass ich ASP.NET und Web-Entwicklung im Allgemeinen noch nicht kenne und nicht mit der IIS -Konfiguration vertraut bin, sodass ich möglicherweise etwas verpasst habe.

Die Dinge, die ich ausprobiert habe:

  • Deaktiviert Antivirus und Firewall.

  • Deaktiviert IPv6 durch Kommentieren der ::1 localhost-Zeile in der hosts-Datei. Meine hosts-Datei sieht folgendermaßen aus:

    127.0.0.1       localhost
    # ::1             localhost
    
  • Versuchte verschiedene Browser.

  • Der Port der Anwendungs-URL wurde geändert.

  • Die Anwendungs-URL wurde von localhost:port in 127.0.0.1:port geändert, aber wenn ich dies tue, bekomme ich:

    Falsche Anfrage (ungültiger Hostname

  • Deinstallierte und erneut installierte IIS Express (versuchte mehrere Versionen: 7.5, 8.0 und 10.0).

  • Versuchte die Installation der "Application Development Features" unter Internet Information Services\World Wide Web Services.

  • Das VS-Installationsprogramm wurde gestartet und eine Reparatur ausgeführt.

Umweltinformationen:

  • Windows 7 x64.
  • Visual Studio 2015.
  • .NET 4.5.2.
  • Derzeit aktivierte IIS-Funktionen: Ich verwende IIS Express, daher bin ich mir nicht sicher, ob dies verwandt ist.

IIS enabled features

Irgendeine Idee, was dieses Problem verursachen könnte?


Aktualisieren:

Ich habe gerade versucht, Jexus Manager zu verwenden. Die Konfiguration wurde aus der .sln-Datei geladen (siehe here ), die Website wurde gestartet und es wurden folgende Szenarien versucht:

  • Durchsuchen der Website nach dem Neustart (beide Aktionen in Jexus Manager) -> 15-20 Sekunden.
  • Durchsuchen der Website (mithilfe von Jexus) nach dem Neuaufbau der Lösung in VS -> 30+ Sekunden.
7

Wenn Sie die Asp.Net MVC-App zum ersten Mal starten, passiert eine Menge Dinge. Daher kann ich nicht genau eine Sache ermitteln, die einen Engpass verursacht. Versuchen Sie jedoch die folgenden Vorschläge, die Ihnen helfen, die Startzeit für Ihre Web-App zu verbessern:

  1. Führen Sie Ihre Web-App immer von Visual Studio aus im Freigabemodus aus (ich weiß, dass Sie es wissen, aber ich muss es trotzdem angeben)
  2. Überprüfen Sie Ihre web.config-Datei und stellen Sie sicher, dass System.Web\compilationdebug=false hat.
  3. Überprüfen Sie die Application_Start-Methode in der Global.asax.cs-Datei, um nicht benötigte Anrufe zu entfernen
  4. Rasierapparate werden standardmäßig zur Laufzeit kompiliert. Wenn Sie also zur Laufzeit keine Änderungen in Ihrer Ansicht vornehmen, stellen Sie sicher, dass Sie Ihre Rasierapparate vorkompilieren. Besser wäre es, wenn Sie RazorGenerator verwenden, um Ihre Ansichten.
  5. Profilieren Sie Ihre Anwendung mit einem Profiler, zum Beispiel Glimpse .

Ich hoffe, das gibt Ihrer App beim Start etwas Schub.

6
Dipen Shah

Dies kann folgende Gründe haben:

  • Der Server hat eine hohe Verarbeitungslast.
  • Bestimmte Arbeitsprozesse sind ständig im Leerlauf.
  • Es steht kein neuer Bearbeitungsraum zur Verfügung.

Es gibt eine gut getarnte Option namens Idle Timeout-Aktion , die in den advanced-Einstellungen des application-Pools geändert werden kann. Die Operation time-out ist standardmäßig auf Terminate eingestellt. Dies bedeutet, dass der Windows-Prozess, der die Site hostet, beendet wird. Wenn diese Beendigung auftritt, muss die Site erstellt und der Prozess beim nächsten Besuch gestartet werden, was zu einem sehr langsamen Erstladen führt. 

Wenn Sie einen dedizierten Server nur für Ihren Service oder eine kleine Anzahl von Websites betreiben, wirkt sich dies offensichtlich auf Ihren Stil aus. In diesen Fällen können Sie den Wert auf 0 setzen. Andere argumentieren, dass 1740 Minuten. Warum? es ist die kleinste Primzahl (in Stunden) über 24.

um die Aktion Leerlaufzeitlimit auf 0 in Microsoft Windows Server 2012 R2 zu ändern, greifen Sie auf IIS zu, wählen Sie den Anwendungspool aus, der Ihre Site bereitstellt, und wählen Sie im Menü auf der rechten Seite Erweiterte Einstellungen die Option Erweiterte Einstellungen Option Leerlaufzeit (Minuten), ändern Sie den Wert in 0 und drücken Sie OK.

Eine andere mögliche Lösung : Installieren Sie die Funktion IIS Anwendungsinitialisierung. Dann sollte es mit dieser Konfiguration funktionieren:

  • stellen Sie den Startmodus auf AlwaysRunning im Anwendungspool ein
  • Preload Enabled auf True auf Websiteebene.