Как развернуть веб-приложение - PullRequest
2 голосов
/ 12 ноября 2009

У нас есть внутренняя веб-система, которая управляет бизнесом большинства наших компаний. Сотни пользователей используют его в течение дня, это очень высокий приоритет и всегда должен работать. Мы смотрим на переход на ASP.NET MVC 2; на данный момент мы используем веб-формы. Прелесть использования веб-форм в том, что мы можем мгновенно выпустить одну веб-страницу, а не развертывать все приложение.

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

Если бы у вас, например, были исправления ошибок с высоким приоритетом, было бы целесообразно, возможно, смешивать веб-формы с MVC и вместо этого заменять представление веб-формой с выделенным кодом, пока вы не сделаете следующий правильный выпуск, который не является веб-формой

Я также видел другие решения на одном и том же сервере, когда одно и то же веб-приложение запускалось бок о бок и меняло корневой каталог в IIS или менял web.config, чтобы он указывал на другую папку, но проблема это означает, что вам нужно выполнить полную сборку и развертывание, даже если бы это было для простого исправления ошибки.

РЕДАКТИРОВАТЬ : Чтобы уточнить, как развертываете приложение без , что вызывает помехи для пользователей.

Как все это делают?

Ответы [ 3 ]

1 голос
/ 12 ноября 2009

Полагаю, вы можете запустить приложение MVC без компиляции? и просто замените .cs / views и такие на ходу.

Удаление / установка веб-набора происходит очень быстро, но оно убивает пул приложений .. что может вызвать проблемы. В зависимости от того, как ваш сайт построен.

Самый плавный способ - запустить его на двух серверах и сохранить сеансы на сервере sql или в общем состоянии. Затем вы можете просто убрать S1 и исправить его => вернуть s1 снова вверх и сбросить S2 => исправить S2, а затем снова включить его. Я подумал, что это может не сработать, если вы внесете какие-либо серьезные изменения в части кода сессии.

0 голосов
/ 16 июля 2010

У вас может быть два физических сервера, каждый из которых работает под управлением IIS и содержит копию сайта. ИЛИ вы можете запустить две копии сайта под разными конечными точками IIS на одном и том же сервере. В любом случае, вам понадобится как минимум две копии сайта в производстве.

Я называю это методом переключения A <-> B.

Во-первых, у каждого рабочего сайта должен быть свой IP-адрес. В DNS вашей компании добавьте набор записей для одного из IP-адресов и присвойте ему действительно короткий TTL. Затем вы можете обновить сайт B, а также предварительно протестировать / прогреть сайт, нажав IP-адрес. Когда он будет готов к работе, переключите DNS на новый сайт B. После истечения срока действия вашего TTL вы можете отключить сайт A и обновить его.

Использование общего состояния сеанса поможет минимизировать переход пользователей между сайтами.

0 голосов
/ 12 ноября 2009

Несколько экземпляров вашего сайта работают на нескольких серверах. Лучший способ сделать это - иметь производственную среду, среду тестирования и среду разработки. Вы можете создавать тестовые случаи и запускать загрузку каждый раз, когда у вас есть новая сборка, если вы можете пройти все тесты, перенести версию в производство;).

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