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

Первый запуск веб-сайта Asp.net происходит очень медленно

В первый раз, когда я загружаю веб-сайт на веб-сервере производства, он запускается очень медленно, последующие страницы загружаются очень быстро (включая домашнюю страницу).

Я предварительно скомпилировал сайт, но ничего не изменилось.

У меня нет кода при запуске приложения. У меня нет кэшированных элементов.

Любые идеи? Как я могу узнать, что происходит?

4b9b3361

Ответ 1

Это только ваш домен приложения загружает и загружает любые двоичные файлы в память. Кроме того, он инициализирует статические переменные, поэтому, если у вас есть статическая переменная, которая загружает большое количество данных из db, это может занять немного.

Ответ 2

Когда вы опубликовали сайт, вы решили сделать сайт "обновляемым" в настройках публикации веб-сайта или нет? Если я хорошо помню, файл aspx/ascx нужно также скомпилировать, и если они будут "обновляемыми", тогда первый запуск приведет к перекомпиляции этих ресурсов.

Ответ 4

Попробуйте очистить журнал событий?

Ответ 5

использовать http://www.iis.net/expand/ApplicationWarmUp для разминки вашего приложения это для IIS 7.5 - поэтому, если вы работаете на сервере R2, он будет работать.

Ответ 6

Убедитесь, что вы публикуете свое приложение в 'release', а не 'debug'. Я заметил, что это значительно сокращает время загрузки. Файл web.config будет обновлен.

Ответ 7

Это очень похоже на компиляцию фона; хотя, если вы предварительно компилируете, это не должно быть проблемой.

Прежде всего, я бы посмотрел на ваш ORM (если есть). NHibernate, в частности, имеет серьезное наказание за запуск, поскольку он запускает несколько компиляторов в фоновом режиме при запуске, чтобы превратить каждый класс в ваш уровень данных в свою собственную сборку в памяти.

Ответ 8

Просто кивнул Даррену. Это типичное поведение приложения .NET после обновления DLL. После начальной загрузки все должно быть просто отлично.

Ответ 9

Когда вы говорите "предварительно скомпилировать" сайт, вы используете утилиту aspnet_compiler для предварительной компиляции или просто используя опцию "Build site" в Visual Studio?

Если вы не выполняете первое, я рекомендую дать ему вращение. В сочетании с Проекты веб-развертывания вам нужно будет упростить развертывание вашего сайта для каждой версии.

Ответ 10

Первоначальная медлительность - это пара вещей:

  • Установлен appDomain
  • ASP.NET анализирует и компилирует страницы ASPX.
  • Инициализируются глобальные контексты.

Это обычное поведение для ASP.NET.

Ответ 11

@Микки: Нет, он выключен. Нужно ли включать его, чтобы узнать?

Журнал трассировки покажет вам, сколько времени требуется для каждого действия. Это может помочь вам найти то, что так долго.

Здесь - ссылка, которая может помочь вам настроить ее.