Можно ли предварительно скомпилировать сайт ASP.Net на остановленном сайте IIS 6? - PullRequest
1 голос
/ 08 июля 2010

У меня есть 2 сайта в IIS, один - это сайт в режиме реального времени, а другой - сайт, который запускается только тогда, когда на этом сайте выполняется техническое обслуживание.

В сценарии развертывания ОСТАНАВЛИВАЮТ работающий сайт и запускаю сайт обслуживания, чтобы пользователи получали дружеское сообщение с сообщением об обновлении.

Единственная проблема, с которой я сталкиваюсь, - когда я запускаю живой сайт, он, очевидно, должен JIT, и это может занять до 3 минут.

Есть ли какой-нибудь JIT до того, как я выпущу его пользователям?

РЕДАКТИРОВАТЬ: Просто чтобы уточнить, этот сайт является CMS, поэтому помеченный ответ ниже работает для меня, потому что для компиляции требуется только 1 страница.

Спасибо

Ответы [ 4 ]

5 голосов
/ 08 июля 2010

Похоже, вам нужно будет использовать NGen ...

Собственный генератор изображений (Ngen.exe) это инструмент, который улучшает производительность управляемых приложений. Ngen.exe создает собственные изображения, которые файлы, содержащие скомпилированные машинный код для конкретного процессора и устанавливает их в родной образ кеш на локальном компьютере. время выполнения может использовать нативные образы из вместо этого использовать кэш (JIT) компилятор для компиляции оригинала сборка.

Предварительно скомпилируйте веб-сайт для развертывания, используя фиксированные имена, разверните решение на сервере и затем ngen все сборки в bin

Статья MSDN по NGen .

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

2 голосов
/ 08 июля 2010

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

0 голосов
/ 08 июля 2010

вы можете использовать aspnet_compiler.exe для предварительной компиляции вашего веб-сайта.Вы можете использовать его из командной строки или вызвать из сценария nant.

[aspnet_compiler] [1]

[1]: http://msdn.microsoft.com/en-us/library/ms229863%28VS.80%29.aspx />

0 голосов
/ 08 июля 2010

Я не верю, что из коробки есть что-то, что могло бы сделать это.Фактически, модуль разогрева IIS7 , который они только что выпустили несколько месяцев назад, просто сканирует и просматривает ваши страницы один раз, чтобы «прогреть их».

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

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