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