Hallo,
ich habe eine Webapplication, die soweit auch einigermaßen schnell ist. Nur braucht der erste Seitenaufruf immer sehr lange. Ich muss teilweise ca 13-14 Sekunden warten, bis sich die Seite aufgebaut hat. Greife ich dann erneut darauf zu, geht alles sehr schnell. Ich glaube nicht, dass das an den Daten liegt, denn es dauert auch bei Seiten, die kaum Daten haben ziemlich lange.
Greife ich allerdings ein paar Stunden später das nächste Mal auf die Seite zu, dauert es wieder lange. Liegt das daran, dass die Seiten immer wieder neu kompiliert werden, oder was könnte diese Wartezeiten ausmachen?
Ich hoffe, mir kann da jemand helfen. Danke!
Moin
Leider fehlt mir die erfahrung mit webanwendungen
Aber es hört sich danach an das die anwendung neu kompiliert wird
aber vileicht ist das ne einstetellungssache
mfg
Das liegt am Konzept von .NET und ASP.NET. Die Kurzfassung: Der Code deiner Anwendung wird "zwischenkompiliert" und dann beim ersten Aufruf der Anwendung in Maschinencode umgesetzt. Daher dauert der erste Aufruf so lange, alle folgenden gehen fixer von der Hand.
Wenn du Stunden später das gleiche Phänomen hast, liegt dass daran, dass sie Anwendung inzwischen ausm Speicher geräumt wurde und nun "neu gestartet" wird, weil zwischenzeitlich niemand mehr drauf zugregriffen hat.
Mit 2.0 hat sich das aber alles wesentlich gebessert, bei meinen Anwendungen dauert der erste Aufruf vielleicht noch 5 Sekunden.
Hallo,
um herauszufinden, ob es am kompilieren liegt, kannst Du ja mal die Website vorkompilieren (Website veröffentlichen) und versuchen ob der Effekt auch auf der vorkompilierten Website auftritt.
Neu kompiliert wird ansonsten normalerweise nur wenn sich was ändert, allerdings landen die Kompilate in einem temporärren Ordner und ich weiß nicht wie lange sie dort vorgehalten werden 🙁
Ich habe ein ähnliches Problem, dessen Ursache in einer ganz anderen Ecke liegt:
Eine ASPX-Anwendung die außerdem an SQLExpress angeschlossen ist. Dann dauert die erste Anfrage so lange, weil der SQL-Server ersrt mal loswetzen muss, und wenn der dann soweit ist, geht's weiter...
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
Prinzipiell könnte es bei mir wahrscheinlich an beidem liegen. Ich verwende SQLExpress - das heißt das Starten könnte dauern, und ich habe die Website nicht "veröffentlicht". Ich war davon ausgegangen, dass sie eigentlich einmal kompiliert wird und die Kompilate beliebig lange vorgehalten werden.
Es hört sich aber durchaus schlüssig an, dass sie nach einiger Zeit automatisch gelöscht werden. Kann man diese Zeit irgendwie einstellen? Es ist nämlich blöd, wenn der erste Aufruf jeden morgen so lange dauert... Achja: das erklärt auch, warum die Webservices, die ich anbiete viel schneller sind - die liegen nämlich in kompilierten Assemblys vor.
Geh doch einfach über "Website veröffentlichen" (am besten mit fester Benennung), dann bekommst du alles vorkompiliert, und das Problem sollte sich in Luft auflösen.
Ich würde das gerne machen, aber wo finde ich Webseite veröffentlichen? Ich verwende VS Express - habe ich das da überhaupt?!
Denke schon, hab kein Express. Mach mal die web.config oder nen .aspx auf, dann müsste im Erstellen-Menü "Website veröffentlichen" auftauchen.