2009-05-14 2 views
5

Ich habe mit der Arbeit an einer neuen Firma begonnen und das Hauptprojekt, an dem ich arbeite (ein ASP.NET 3.5-Webanwendungsprojekt), benötigt eine übermäßig lange Zeit (Rund 1,5 Minuten)ASP.NET 3.5 Web Application Project dauert übermäßig lange, um zuerst geladen zu werden

ich bin mir bewusst, dass dies in der Regel die Art der Web-App-Projekte, aber mein Problem ist, auf diese Weise zu lang erscheint.

Ive versuchte, einige Dinge zu versuchen und zu lokalisieren, was könnte diese Verzögerung verursacht einschließlich der web.config mit einem frisch man von einem neuen Projekt erstellt Ersetzen alles von meinem app_start in meinem web.config gelöscht gelöscht alle weppart dlls von meinem Binärordner (die mich mit 19 dlls in meinem Verzeichnis ist, darunter 6 von der MS Enterprise Library verläßt)

und noch dauert es eine sehr lange Zeit zu laden.

Ich frage mich, ob jemand irgendwelche Hinweise hatte, wie ich darum, herauszufinden, gehen kann, was Zeit oder von Werkzeugen eine so große Last verursacht, die mir helfen würden, sehen, was mein app tut, wenn es

beginnt

Dank -Kris

+0

Haben Sie den Code durchgegangen? Vielleicht initialisiert es eine Datenbank oder etwas. –

+2

Die Sprache hier ist ein wenig mehrdeutig. Wenn Sie "Webanwendungsprojekt" meinen, heißt das Laden des Projekts in Visual Studio, oder beziehen Sie sich beim ersten Treffer auf die Startzeit der Anwendung in IIS? –

+0

Hallo Rex, im Bezug auf die Startzeit der Anwendung in IIS auf den ersten Treffer (oder in diesem Fall der VS in Web-Server) – Lightweight

Antwort

2

ein warm-up script Versuchen.

JetBrains DotTrace sind ein ausgezeichneter ASP.NET-Profiler.

+1

Danke Chris, aber mein Problem ist mit der Arbeit an dem Projekt, dh Code entwickeln> kompilieren> Änderungen anschauen - kann nicht wirklich alle 5 Minuten ein Warm up – Lightweight

+1

+1 für die DotTrace Empfehlung planen - das an die Website anhängen und sehen, was die Zeit zum Laden. Sehen Sie sich auch die Speicherauslastung und Prozessorauslastung an - ob w3wp alle Ressourcen verbraucht oder etwas anderes? –

+0

Hallo Chris, ich muss blind sein, ich habe nicht die zweite Zeile gesehen, die DotTrace erwähnt, danke – Lightweight

0

Wie viele Projekte gibt es? Wenn Sie im bin-Verzeichnis große Mengen an Assemblys und DLLs haben, kann das die Ladezeiten erheblich verkürzen (selbst wenn sie ziemlich klein sind). Das ist das Beste, was ich vorschlagen kann.

+0

Es gibt 8 andere Projekte, die mir nicht so schlecht vorkommen. Es gibt viele Web-Part-DLLs, deshalb habe ich versucht, sie alle zu löschen und die Ladezeit danach zu testen, aber immer noch keine Freude :( – Lightweight

0

Versuchen Sie, den SQL Profiler zu verwenden und beobachten Sie die zugehörige Datenbankaktivität während des Starts.

Die Chancen stehen gut, eine Last von Anfragen gibt es die Datenbank auf der ersten Seite Ansicht schlagen die verschiedenen Caches zu initialisieren.

Wenn dies der Fall ist, können Sie sich auf die Optimierung der Abfragen konzentrieren, die die meisten Blockierungen verursachen.

3

In .NET 2.0 gibt es einen weiteren Fehler. Wenn Sie signierte Assemblys in Ihrem bin-Ordner haben, versucht CLR, eine Verbindung zu einer VeriSign-URL herzustellen und ruft eine Sperrliste der Zertifikate ab, um festzustellen, ob sie gültig sind.

Dies könnte einige Ihrer Startzeit auch essen. Wenn Sie denken, dies zu Ihrem Problem beitragen könnte, dann können Sie einen Blick auf die haben folgende MS Artikel:

http://digital.ni.com/public.nsf/allkb/18E25101F0839C6286256F960061B282 
http://support.microsoft.com/kb/936707 

mit dieser auf einer Basis pro Anwendung umgehen können Sie die folgenden Einstellungen unter dem Config-Abschnitt hinzufügen in Ihrer app.config/web.config.

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <runtime> 
     <generatePublisherEvidence enabled="false" /> 
    </runtime> 
</configuration> 

Natürlich, wenn Sie diese Einstellung hinzufügen, werden die signierten DLLs nicht mehr auf ihre Gültigkeit überprüft!

+0

Wenn dies hauptsächlich ein Problem in der Entwicklung ist, können Sie es während der Entwicklung ausschalten und haben eingeschaltet in der Live-App. – awe

0

ANTS Profiler von RedGate könnte Ihnen einige Hinweise geben, was Sie möglicherweise verlangsamt.

Setzen Sie einen Haltepunkt auf Page_Load in Default.aspx.cs und starten Sie den Vorgang.

Überprüfen Sie die Datei Global.asax, um festzustellen, ob etwas geladen wurde, das Ihnen unbekannt ist.

Werden andere Projekte schnell geladen? Haben Sie andere Programme, die Ihren Computer verlangsamen könnten? Wie Sie erwähnen, nehmen .NET-Anwendungen am längsten beim ersten Laden ... haben Sie eine Menge Referenzen (außerhalb Bibliotheken, DLLs ... etc ...)

Wenn Sie zu einem Staging-oder Dev-Server veröffentlichen , lädt es schnell?

Verwandte Themen