Назад | Перейти на главную страницу

Простой способ перезагрузить несколько приложений на одном веб-сайте IIS после повторного использования AppPool?

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

Я работаю над веб-сайтом в интрасети, который содержит несколько приложений MVC3 и Coldfusion. Я настроил AppPool на переработку каждое утро в 2:00. Теперь я хотел бы создать запланированную задачу для перезагрузки каждого приложения, содержащегося на этом веб-сайте IIS, чтобы, когда первый пользователь входит утром, ему не приходилось ждать от 30 секунд до 2 минут, чтобы их приложение было перезагружено в IIS AppPool.

Легко ли это сделать? На мой взгляд, единственные варианты:

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

Для этого используйте модуль инициализации приложения: http://www.iis.net/download/ApplicationInitialization

Существовала более старая версия этого модуля, но это недавно переписанная версия. Он все еще находится в CTP, но выглядит довольно стабильно.

Также этот модуль по умолчанию включен в Server 2012 и IIS8.

Обычно мы создаем запланированную задачу, которая запускает wget каждые несколько минут для выполнения начальной загрузки. Это может работать с любого компьютера. В IIS 7 есть функция «разогрева», но я действительно не понимаю, как это может быть проще, чем использование wget.

wget.exe --quiet --secure-protocol=SSLv3 --no-check-certificate sitename.domainname.com  

Также обратите внимание, что если ваш сайт не был предварительно скомпилирован, пользователь все равно столкнется с задержкой для каждой страницы, которая не была скомпилирована. Лучше всего использовать aspnet_compiler.exe, чтобы сделать это за вас в процессе сборки.

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe" -f ^  
-v "/" -p "%~dp0..\..\SourceWebSiteFolder" ^  
-d -fixednames "%~dp0..\..\PublishedWebSiteFolder"