Рекомендации по обновлению веб-сайта, работающего в IIS

в настоящее время, когда у нас есть обновления, которые мы хотим раскрутить наш сайт, мы .bat файл, который копирует всю структуру папок из нашей среды разработки на живые сервера. Это заменяет папку, на которую указывает виртуальный каталог, новым обновленным новым каталогом. Это делается в то время как сервер и IIS живут и, очевидно, в то время как пользователи получают доступ к веб-сайту.

иногда мы получаем ошибки, вызванные файлами или папками, которые становятся "заблокированными" сразу после обновления, и обычно единственным вариантом является остановка IIS или перезагрузка сервера. Мы предполагаем, что эта "блокировка" вызвана .файл bat пытается перезаписать файл, пока он используется IIS.

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

спасибо.

2 ответов


Reposted как ответ, а не комментарий, имел глупый момент там!

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

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

в настоящее время мы экспериментируем с платформой веб-фермы Microsoft, которая, кажется, делает это очень хорошо.

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

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


купите второй веб-сервер, купите балансировщик нагрузки. Отметить 1 сервер в автономном режиме, обновить, вернуть в интернет. Отметить сервер 2 в автономном режиме, обновить, вернуть в интернет.