2009-11-12 3 views
2

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

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

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

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

EDIT: Разрабатывать, как вы развертывания приложения без вызывает каких-либо сбоев в работе пользователей.

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

ответ

1

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

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

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

+0

Да, я ожидал, что это будет ответ. Вам также не нужны два сервера, вы можете просто запустить его на одном сервере и поделиться состоянием сеанса с помощью экземпляра asp, что означает, что вам не нужно использовать SQL, поэтому он намного быстрее, так как это «InProc». – Kezzer

0

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

+0

Да, но вопрос: _how_ вы перемещаете его в производство, не вызывая нарушения для пользователей? – Kezzer

0

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

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

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

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

+0

Я бы не рекомендовал использовать DNS для переключения экземпляров вообще. В какой момент вы уверены, что все ваши клиенты разрешат новый IP-адрес? Например, браузер FireFox имеет свой собственный кэш DNS, поэтому пользователи могут поражать старый IP гораздо дольше, чем вы ожидали. Плюс короткий TTL увеличивает DNS-запросы. Используйте некоторую технологию SLB, чтобы вы могли вытащить узел для обслуживания, не беспокоясь о проблемах распространения и кеширования DNS. – Riko

 Смежные вопросы

  • Нет связанных вопросов^_^