IIS перекомпилировать веб-сайты ASP NET - PullRequest
3 голосов
/ 07 мая 2009

Я говорил с другом о том, что делает IIS, когда вы помещаете новый файл в виртуальный каталог.

Он сказал мне, что IIS перекомпилирует весь веб-сайт, когда вы помещаете файл в любое место на веб-сайте, я думаю, что это просто происходит (если происходит), когда вы помещаете файл в папку Bins.

Разговор происходит потому, что веб-сайт компании используется для загрузки файлов, но файлы сохраняются в папке с именем «Письма» на нашем веб-сайте. Мой друг говорит, что каждый раз, когда кто-то загружает файл, IIS перекомпилирует весь веб-сайт. Он прав?

Ответы [ 6 ]

2 голосов
/ 07 мая 2009

Достаточно легко проверить. Начните наблюдать за счетчиками JIT-компиляции на веб-сервере ... Просмотрите браузер, а затем поместите в него файл, чтобы увидеть показания счетчиков.

2 голосов
/ 07 мая 2009

Перекомпилируется только когда вы добавляете код, который нужно скомпилировать. То есть добавление новых классов в App_Code. Он не перекомпилируется, когда вы просто сохраняете изображение или текстовый файл на веб-сайте.

1 голос
/ 14 апреля 2016

Перезапустите пул приложений. В PowerShell:

$AppPoolName = 'NameOfApp'

$AppPool = Get-ChildItem iis:\apppools | where { $_.Name -eq $AppPoolName}

Restart-WebAppPool $AppPool

Это заставит код перекомпилироваться.

1 голос
/ 07 мая 2009

В machine.config есть параметр numRecompilesBeforeApprestart, который указывает количество изменений файла, которые могут произойти до перезапуска приложения. По умолчанию установлено значение 15.

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

Возможно, это то, о чем говорит твой друг.

1 голос
/ 07 мая 2009

Я думаю, что ASP.NET перезапускается и перекомпилирует весь сайт только при изменении сборок bin, App_Code или global.asax.

Подробнее о новом флаге для оптимизации поведения при компиляции ASP.NET см. в этом блоге .

Добавление файлов в папку в виртуальном каталоге не должно приводить к повторной компиляции (если папка не является 'bin' или 'app_code'!)

0 голосов
/ 07 мая 2009

Определенно зависит от вашей версии, потому что: Также есть новое исправление, которое позволяет оптимизировать компиляцию, чтобы IIS перекомпилировал реже, но я не уверен, когда именно.

Я думаю, раньше было так, что новая разметка не будет вызывать перекомпиляцию, если вы не переходите к ней (а вместо этого переходите к другому файлу разметки), а файлы bin / dll / assembly всегда будут запускаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...