Попробуйте выполнить производственные развертывания, когда в сети мало пользователей, например, ночью или в выходные дни. Уведомите пользователей о запланированном отключении.
При развертывании в производственной среде вы можете создать файл " App_Offline.htm " и поместить его в корень веб-сайта ASP.NET. ASP.NET распознает, что этот файл имеет особое значение - все запросы динамической страницы отображаются на этой странице, а не на странице, запрошенной пользователем. Обычно на этой странице отображается дружеское сообщение, например «Сервер не работает из-за текущего обслуживания. Повторите попытку через 30 минут».
Еще один совет, позволяющий сделать развертывание менее болезненным, - это сделать ваш web.config как можно более похожим в различных средах, таких как разработка, тестирование и производство. Для вещей, которые действительно должны измениться в разных средах, таких как строки подключения, вы можете извлечь их в их собственный файл connectionStrings.config, установив в web.config.
Для развертываний баз данных есть несколько отличных сторонних инструментов (например, Сравнение баз данных Teratrax для SQL Server), которые позволяют сравнивать схему и / или данные между двумя базами данных и создавать сценарий SQL, который перенесет целевую базу данных в схему другой базы данных. Будет ли это работать для вас, будет зависеть от ваших конкретных методов разработки. Если вы не можете использовать такие инструменты, вы можете записывать каждое изменение базы данных, а затем воспроизводить эти сценарии при развертывании в другой среде.
И, конечно, в идеале у вас должна быть среда тестирования, точно такая же, как Production и позволяющая выполнить все ваши приемочные испытания и убедиться, что ваш выпуск стабилен и ваше развертывание будет работать до того, как вы приступите к работе.