Запуск нескольких событий Application_Start - PullRequest
13 голосов
/ 10 сентября 2010

Я отлаживаю приложение ASP.NET 2.0, которое страдает от медленной загрузки начальной страницы.

Посредством добавления журнала я обнаружил, что событие Application_Start дважды запускается при запуске с короткимзадержка между двумя событиями.Событие Session_Start также запускается дважды с тем же значением идентификатора сеанса.

например,

[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

Я запускаю это на своей локальной машине под IIS 5.1.В проекте также используется ASP.NET MVC, а используемый URL-адрес aspx-страницы изменяется с помощью маршрутизации, с использованием техники, показанной на сайте Фила Хаака .

Есть предложения о том, что может вызвать это?

Ответы [ 3 ]

12 голосов
/ 12 апреля 2011

В конце концов мы поняли, что это связано с нашей конфигурацией IIS.

Некоторое время назад было принято решение переименовать виртуальный каталог, используемый для этого веб-сайта.Это было сделано путем добавления совершенно новой конфигурации виртуального каталога, оставив предыдущую на месте.По сути, у нас было два виртуальных каталога, указывающих на одно и то же приложение ASP.NET!

Миграция в новый виртуальный каталог так и не была завершена, поэтому части веб-сайта по-прежнему ссылались на старый.Следовательно, два Application_Start события ...

Исправлено изменение в настройке старого виртуального каталога в IIS на Перенаправление на URL с URL-адресом / NewVirtualDirectory $ S $ Q

3 голосов
/ 09 июля 2012

У нас была похожая ситуация, когда мы обнаружили, что это произошло потому, что мы сделали переименование сборки и имели две копии одного и того же кода, ссылающегося на существующую сборку, versionA.dll и versionB.dll. Так что из-за этого его дважды вызывали!

0 голосов
/ 20 декабря 2016

По моему опыту (после долгих исследований и тонны кодирования), который исходит от

восстановление SQLite.Interop.dll в папке x64

Я удалил управление файлами из панели хостинга вместо FTP (FileZilla) и исчезло многократное срабатывание событий Application_Start :-) Первопричиной проблем была остановка процесса Quartz.Net, подключенного к этой dll.

...