Как перезапустить сайт IIS при повторной компиляции сайта asp.net - PullRequest
2 голосов
/ 21 мая 2010

Каков наилучший способ добавить в сценарий сборки / компиляции проекта Asp.net инициирование IIS для перезапуска сайта при перестройке DLL вместо первого запроса к сайту.

Текущий процесс

  1. Компиляция проекта
  2. Подождите
  3. Hit APSX Page
  4. IIS начинает перезагрузку
  5. Подождите
  6. Загрузка страниц

Идеальный процесс:

  1. Компиляция проекта и перезагрузка IIS
  2. Подождите
  3. Hit APSX Page
  4. Загрузка страниц

Первым делом я добавил запрос, чтобы просто попасть на одну из страниц в «Событиях после сборки». Просто интересуюсь лучшими практиками. Это было бы похоже на «Пуск», который сразу открывает страницу при сборке.

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

  1. VS: ctrl + shift + b
  2. Дождитесь визуальной очереди "Сборка завершена".
  3. Broswer: F5 .
  4. Подождите, пока IIS перезагрузится. (а также Hit kbd> F5 в неотвеченных вопросах в SO )
  5. Тестовая страница

Ответы [ 3 ]

3 голосов
/ 21 мая 2010

Добавьте 'iisreset / stop' в событие Pre-Build и 'iisreset / restart' в конце события Post-Build.

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

2 голосов
/ 21 мая 2010

Наивным способом было бы написать сценарий оболочки vb или сценарий PowerShell, чтобы использовать XmlHttpRequest для запроса страницы с сайта, и включить его в качестве задачи после сборки.

Есть ли какая-то особая причина, по которой вы чувствуете необходимость сделать это? Если вы испытываете проблемы с производительностью при первом JIT, вам может потребоваться разбить ваше приложение на более мелкие проекты / библиотеки DLL (при условии, что размер является проблемой) или начать искать узкие места, возникающие при запуске приложения.

Еще один вопрос: почему сброс IIS? Это не приведет к перекомпиляции DLL до первого запроса страницы. В отличие от классического ASP, нет необходимости перезапускать IIS для того, чтобы изменения DLL были разрешены / вступили в силу.

1 голос
/ 21 мая 2010

"Ожидание", которое вы хотите удалить из процесса, скорее всего, компиляция страниц разметки aspx. Когда вы собираете VS по умолчанию, он скомпилирует весь ваш код, но не скомпилирует ваши страницы aspx разметки. Вы можете обойти это, добавив Web Deployment Project к вашему решению, которое позволяет вам предварительно компилировать страницы разметки. Таким образом, начальное время загрузки после развертывания не должно сильно отличаться от любого другого времени загрузки.

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