2010-08-07 2 views
1

Как развернуть в среде общедоступного хостинга ... код и базу данных (полномасштабный SQL).VS2010 Развертывание ASP.NET

Каков ваш любимый способ получить проект проекта и базу данных ASP.NET для веб-приложений размером 50 МБ на живой сервер с портами FTP и SQL Management Studio?

После дня разведки шахты: - Используйте Web.Debug.config легко разрешить различные строки соединения, SMTP и т.д.

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

  • Изменение .csproj, чтобы операторы DROP ScriptDropsFirst = «True» из http://vishaljoshi.blogspot.com/2009/08/replacing-your-old-db-with-new-one.html

  • развернуть в файловой системе с: \ развернуть и использовать FileZilla, чтобы скопировать на мой FTP-сайт (с перезаписью только если источник новее)

  • Использование SQL Management Studio, чтобы взять скрипт .SQL из \ Obj \ Release \ AutoScripts alt text http://www.programgood.net/vsscreen.jpg

+0

Благодарим за редактирование. Роб - увлекся ссылками 007 :-) –

ответ

1

FileZilla deployme nt в порядке, если вы не возражаете против короткого времени простоя, которое это может вызвать. Во время развертывания сайт может находиться в несогласованном состоянии (например, вы развернули файл .aspx, который ссылается на код в DLL, которого еще нет). Поэтому посетители сайта за это время могут столкнуться с ошибками - если вы не поймаете эти ошибки, они увидят «желтый экран смерти». Это будет устранено, как только все файлы будут развернуты.

Вот процесс, который работал для меня в прошлом, для развертывания минимального простоя на одном сервер:

  1. На сервере, скопируйте весь код из живого места (например, C: \ Сайты \ MySite) в резервное место (например, c: \ Sites \ MySite_bak)
  2. Измените виртуальный корень сайта c: \ Sites \ MySite на c: \ Sites \ MySite_bak. Это приведет к некоторым задержкам для посетителей сайта, поскольку ASP.NET необходимо повторно использовать ASPX-страницы; но посетители не будут видеть ошибок.
  3. Используйте FileZilla для развертывания в c: \ Sites \ MySite, с «перезаписывать, если источник более новый»
  4. Изменить виртуальный корень сайта из c: \ Sites \ MySite_bak обратно в c: \ Sites \ MySite. Это приведет к автоматическому переключению сайта на новую версию. Будет еще одна задержка JIT.
  5. Сохраните резервную версию на реальном сервере на случай, если вам когда-либо понадобится отменить свои изменения.

Если вы также вносите изменения в схему БД, вы должны сделать это одновременно с (4). Или, если изменения совместимы со старой версией кода, вы можете сделать это раньше.

Я предполагаю, что у вас есть только один сервер. Если у вас есть ферма серверов, вы можете выполнить развертывание развертывания, взяв один сервер за пределы пула балансировки нагрузки.

+0

Я также предполагаю, что у вас есть доступ к администрированию IIS на реальном сервере - если вы этого не сделаете, этот подход не сработает. –

+0

Спасибо, Ричард, я не беспокоюсь о простоях, пока проект еще не появился. Моя главная головная боль - это долгожданный процесс ... просто весело, ища лучший способ. Еще раз спасибо за мысли о живых вещах. –

+0

Другой вариант изменения каталога в IIS, вы можете поместить файл app_offline.htm в каталог. IIS будет обслуживать этот файл для любых обращений на веб-сайт, избавляясь от потенциальных желтых экранов. Приложение по-прежнему отключено, но вы можете показать сообщение «Обновление, повторите попытку через минуту». или любой html, который вы хотите. –

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