Подтвердить что ты не робот

Увольнение нескольких событий Application_Start

Я отлаживаю приложение 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 изменяется с использованием маршрутизации, используя технику, показанную на сайте Phil Haack.

Любые предложения о том, что может это сделать?

4b9b3361

Ответ 1

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

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

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

Исправление должно было измениться на установку старого виртуального каталога в IIS для перенаправления на URL с URL-адресом, установленным в /NewVirtualDirectory $S $Q

Ответ 2

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

Ответ 3

В моих опытных (после нескольких часов исследованиях и тоннах кодирования), которые исходят от

undeleted SQLite.Interop.dll в папке x64

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