événements Application_Start multiples de tir
-
02-10-2019 - |
Question
Je suis débogage d'une application ASP.NET 2.0 qui souffre de la lenteur de chargement de la page initiale.
Grâce à l'ajout de l'exploitation forestière, j'ai trouvé que l'événement se déclenche deux fois Application_Start
au démarrage avec un court délai entre les deux événements. L'événement déclenche également Session_Start
deux fois, avec la même valeur ID de session.
par exemple.
[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
Je suis en cours d'exécution sur mon ordinateur local, sous IIS 5.1. Le projet utilise également ASP.NET MVC et l'URL de la page ASPX utilisé est modifié en utilisant le routage, en utilisant la technique indiquée sur le site de Phil Haack .
Toutes les suggestions sur ce qui pourrait être la cause?
La solution
Nous avons finalement réalisé que cela était jusqu'à notre IIS configuration.
Il y a quelque temps il a été décidé de renommer le répertoire virtuel utilisé pour ce site. Cela a été fait en ajoutant une toute nouvelle configuration de répertoire virtuel, laissant le précédent en place. Essentiellement, nous avions deux répertoires virtuels pointant à la même application ASP.NET!
La migration vers le nouveau répertoire virtuel n'a jamais été achevée, si les parties du site encore référencé l'ancien. D'où deux événements Application_Start
...
Le correctif a été de changer de configuration dans l'ancien répertoire virtuel dans IIS pour être Une redirection vers une URL avec l'ensemble URL / NewVirtualDirectory $ S $ Q
Autres conseils
Nous avons eu une situation similaire se produire seulement pour découvrir que c'était parce que nous avions fait un changement de nom de montage et a deux copies du même code faisant référence cette assemblée existait, versionA.dll et versionB.dll. Ainsi, il a été appelé deux fois à cause de cela!
Dans mon expérience (après les heures de recherche et des tonnes de codage) qui vient de
SQLite.Interop.dll dans le dossier non effacé x64
Je DETRUIT par Gestion des fichiers à partir du panneau d'hébergement au lieu de FTP (FileZilla) et les événements Application_Start
multiples tir disparu :-) Les causes profondes des problèmes était de processus Quartz.Net imparable qui a été connecté à cette dll.