2010-09-10 7 views
12

Ich debuggen eine ASP.NET 2.0-Anwendung, die langsames Laden der ersten Seite leidet.Mehrere Application_Start-Ereignisse ausgelöst

Durch Hinzufügen von Protokollierung habe ich festgestellt, dass das Ereignis Application_Start beim Start zweimal mit einer kurzen Verzögerung zwischen den beiden Ereignissen ausgelöst wird. Das Ereignis Session_Start wird auch zweimal mit demselben Sitzungs-ID-Wert ausgelöst.

z.B.

 
[Header] 
2010-09-10 14:52:36.331 INFO Web.Global.Application_Start   START 
2010-09-10 14:52:37.409 INFO Web.Global.Session_Start    Session.SessionID=xxqjvun2ce2yqsumq1hfoj45 
[Header] 
2010-09-10 14:53:10.028 INFO Web.Global.Application_Start   START 
2010-09-10 14:53:10.325 INFO Web.Global.Session_Start    Session.SessionID=xxqjvun2ce2yqsumq1hfoj45 

Ich führe dies auf meinem lokalen Rechner, unter IIS 5.1. Das Projekt verwendet auch ASP.NET MVC und die AspX-Seiten-URL, die verwendet wird, wird mit Routing geändert, using the technique shown on Phil Haack's site.

Irgendwelche Vorschläge dazu, was das verursachen könnte?

+2

Ändert die Anwendung zufällig die Datei web.config? – muratgu

+0

Haben Sie Application_End zwischendurch ausgelöst? Haben Sie in Ihrem Code irgendwelche Aufrufe von "HttpRuntime.UnloadAppDomain"? – Alex

+1

In meinem Fall war es Mc Afee Virus Scan. Ich folgte dieser Anleitung, um Ordner auszuschließen https://support.microsoft.com/en-us/kb/3126034 – gavin

Antwort

11

Wir haben schließlich festgestellt, dass dies auf unsere IIS-Konfiguration zurückzuführen ist.

Vor einiger Zeit wurde eine Entscheidung getroffen, das virtuelle Verzeichnis, das für diese Website verwendet wird, umzubenennen. Dies wurde getan, indem eine komplett neue virtuelle Verzeichniskonfiguration hinzugefügt wurde, wobei die vorherige beibehalten wurde. Im Wesentlichen hatten wir zwei virtuelle Verzeichnisse, die auf dieselbe ASP.NET-App zeigten!

Die Migration in das neue virtuelle Verzeichnis wurde nie abgeschlossen, daher verwiesen Teile der Website immer noch auf die alte. Daher zwei Application_Start Ereignisse ...

Das Update war die Einrichtung zum alten virtuellen Verzeichnisses in IIS zu ändern Eine Umleitung zu einem URL mit der URL zu /NewVirtualDirectory $ S $ Q

3
eingestellt sein

Wir hatten eine ähnliche Situation, nur um festzustellen, dass es war, weil wir eine Assembly-Umbenennung durchgeführt hatten und zwei Kopien desselben Codes, der auf diese Assembly existierte, hatten, versionA.dll und versionB.dll. Deshalb wurde es zweimal aufgerufen!

0

In meinem erfahrenen (nach Stunden der Forschung und Tonnen-Codierung), die durch File Management

I Panel von Hosting, anstatt gelöscht

undeleted SQLite.Interop.dll in x64-Ordner stammt aus

FTP (FileZilla) und mehrere Application_Start Ereignisse feuern weg :-) Root Ursachen von Problemen war unaufhaltbar Quartz.Net Prozess, der mit dieser DLL verbunden war.