Публикация в IIS — лучшие практики
Вопрос
Я не новичок в веб-публикации, НО я новичок в публикации на часто используемом веб-сайте.Раньше приложения на этом сервере подвергались сбоям не очень часто, но сейчас мы внедряем приложение с высоким спросом.Итак, как лучше всего публиковать данные на работающем веб-сервере?
- Лучше всего подождать до середины ночи, когда люди не будут на ней (да, я могу в значительной степени полагаться на это-это интранет и, следовательно, будет иметь время без использования)
- Публикуйте, когда появляются новые обновления в багажник (конечно, зависит от успеха сборки)
- Если 2 верно, то это кажется плохим, если кто-то использует эту конкретную страницу или DLL, и она перезаписывается.
...Я уверен, что есть много отличных мест для подобных вещей, но я не использовал правильные условия поиска в Google.
Решение
@Ник ДеВоре написал:
Если 2 верно, то это кажется плохой, если кто -то использует эту конкретную страницу или DLL, и это перезаписывается.
На самом деле это не проблема, если вы используете стек ASP.NET (веб-формы, MVC или свой собственный), поскольку все ваши файлы aspx компилируются и, следовательно, не затрагиваются веб-сервером.Папка /bin/ полностью затенена где-то еще, поэтому библиотеки внутри нее также не используются веб-сервером.
IIS будет ждать, пока все запросы будут выполнены (однако есть некоторое время ожидания), а затем продолжит компиляцию (при необходимости) и перезапустит AppDomain.Если изменилось всего несколько файлов, перезапуска AppDomain даже не произойдет.IIS загрузит новые сборки (или скомпилированные файлы aspx/asmx/ascx) в существующий домен приложений.
@Ник ДеВоре написал:
Помогите мне понять это немного больше.Назнайте мне место, где это объясняется Microsoft.Спасибо!
Попробуйте Google по ключевым словам «IIS AppDomain».я нашел Что программисты ASP.NET должны знать о доменах приложений.
Другие советы
Большую часть обновлений мы делаем в предрассветные часы.
Полезный совет: если это сайт ASP.NET, в какое бы время суток вы ни развертывали сайт, добавьте файл App_Offline.htm с сообщением, объясняющим пользователям, что сайт закрыт на техническое обслуживание.
Скотт Гатри имеет дополнительную информацию здесь:
http://weblogs.asp.net/scottgu/archive/2006/04/09/442332.aspx