Laden...

Erster Seitenaufruf unglaublich langsam bei ASP.NET-Application

Erstellt von sir-archimedes vor 17 Jahren Letzter Beitrag vor 17 Jahren 4.764 Views
S
sir-archimedes Themenstarter:in
52 Beiträge seit 2006
vor 17 Jahren
Erster Seitenaufruf unglaublich langsam bei ASP.NET-Application

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!

2.223 Beiträge seit 2005
vor 17 Jahren

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

W
799 Beiträge seit 2004
vor 17 Jahren

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.

3.170 Beiträge seit 2006
vor 17 Jahren

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

S
sir-archimedes Themenstarter:in
52 Beiträge seit 2006
vor 17 Jahren

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.

W
799 Beiträge seit 2004
vor 17 Jahren

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.

S
sir-archimedes Themenstarter:in
52 Beiträge seit 2006
vor 17 Jahren

Ich würde das gerne machen, aber wo finde ich Webseite veröffentlichen? Ich verwende VS Express - habe ich das da überhaupt?!

W
799 Beiträge seit 2004
vor 17 Jahren

Denke schon, hab kein Express. Mach mal die web.config oder nen .aspx auf, dann müsste im Erstellen-Menü "Website veröffentlichen" auftauchen.