Каковы лучшие практики для развертывания приложений ASP.NET - PullRequest
15 голосов
/ 15 июля 2009

Не слишком много в мире ASP.NET, но я все еще сталкивался с необходимостью работать над проектом ASP.NET, который требует периодического развертывания новой версии на рабочем сервере IIS.

Каковы общепринятые рекомендации для развертывания приложений ASP.NET?

Среда: Windows Server 2003, IIS6, MySQL5, приложение ASP.NET 2.0.

Ответы [ 3 ]

13 голосов
/ 16 июля 2009

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

При развертывании в производственной среде вы можете создать файл " App_Offline.htm " и поместить его в корень веб-сайта ASP.NET. ASP.NET распознает, что этот файл имеет особое значение - все запросы динамической страницы отображаются на этой странице, а не на странице, запрошенной пользователем. Обычно на этой странице отображается дружеское сообщение, например «Сервер не работает из-за текущего обслуживания. Повторите попытку через 30 минут».

Еще один совет, позволяющий сделать развертывание менее болезненным, - это сделать ваш web.config как можно более похожим в различных средах, таких как разработка, тестирование и производство. Для вещей, которые действительно должны измениться в разных средах, таких как строки подключения, вы можете извлечь их в их собственный файл connectionStrings.config, установив в web.config.

Для развертываний баз данных есть несколько отличных сторонних инструментов (например, Сравнение баз данных Teratrax для SQL Server), которые позволяют сравнивать схему и / или данные между двумя базами данных и создавать сценарий SQL, который перенесет целевую базу данных в схему другой базы данных. Будет ли это работать для вас, будет зависеть от ваших конкретных методов разработки. Если вы не можете использовать такие инструменты, вы можете записывать каждое изменение базы данных, а затем воспроизводить эти сценарии при развертывании в другой среде.

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

2 голосов
/ 15 июля 2009

Некоторое время назад я написал сообщение в блоге, посвященное этому подходу, с различными средами: http://juristr.com/blog/2009/03/best-practices-deploying-webapps-contd_20/

Что бы я вам дополнительно рассмотрел, это увеличить номера версий в вашем AssemblyInfo для отслеживания фактической версии, используемой в производственной системе.

2 голосов
/ 15 июля 2009

Убедитесь, что в вашем файле web.config .

установлено значение <compiliation debug="false">.

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

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