Как перезапустить приложение ASP.NET сразу после запуска IISRESET? - PullRequest
1 голос
/ 18 сентября 2009

У меня есть задача Windows, которая перезапускает IIS в полночь 00:00. В моем приложении есть фоновый поток, который запускает глобальное обновление около 02:00.

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

Есть ли способ запустить приложение без предварительного просмотра веб-приложения?

Ответы [ 4 ]

4 голосов
/ 18 сентября 2009

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

Но, если вам действительно нужно сделать это, можно создать командный файл, который будет:

iisreset /restart
"C:\Program Files\GnuWin32\bin\wget.exe" -O nul http://www.myapp.com/default.aspx

Затем запустите этот пакетный файл как запланированное задание в 12:00.Это перезапустит IIS и прогреет ваше приложение.

Вы можете получить GNU wget.exe из:

WGET для Windows (SourceForge)

3 голосов
/ 18 сентября 2009

У вас может быть другая задача, которая обращается к вашему веб-сайту после перезапуска IIS.

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

1 голос
/ 18 сентября 2009

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

0 голосов
/ 18 сентября 2009

Вы также можете использовать скрипт Powershell, вызываемый диспетчером задач. Вот простой шестистрочный скрипт , который мы используем для «прогрева» серверов SharePoint.

Вы можете изменить или найти похожий сценарий для базового приложения .NET.

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