Я знаю, що це дуже основне питання. Якби хтось міг мене гумором і сказати, як вони з цим впораються, я був би великий.
Я вирішив опублікувати це, оскільки я збираюся встановити SynchToy, щоб виправити проблему нижче, і я відчуваю себе трохи непрофесійно, використовуючи "Іграшку", але не можу придумати кращого способу.
Багато разів, коли я знаходжусь у цій ситуації, я пропускаю якийсь болісно очевидний спосіб робити речі - це походить від єдиного розробника в компанії.
- Веб-додаток ASP.NET, розроблений на моєму комп’ютері під час роботи
- Рішення має 2 проекти:
- Веб-сайт (файли)
- WebsiteLib (C # / dll)
- Використання сховища Git
- Розгорнуто на веб-сервері GoGrid 2008R2
Розгортання:
- Внесіть зміни коду.
- Натисніть на Git.
- Віддалений робочий стіл до сервера.
- Потягніть з Git.
- Перезапишіть живі файли, перетягуючи / опускаючи з Windows Explorer.
На кроці 5 я видаляю всі файли з кореня веб-сайту. Це не може бути гарною справою. Ось чому я збираюся встановити SynchToy ...
ОНОВЛЕННЯ: ДЯКУЄМО за всі корисні відповіді. Я не можу вибрати, на яку відповісти - між використанням веб-розгортання - схоже, у мене є кілька корисних пропозицій:
- Веб-проект = весь сайт, упакований у єдину DLL - для мене я не можу просувати прості оновлення - будучи самотнім розробником у компанії 50, це часом залишається чимось простішим.
- Потягнувши прямо з SCM в веб-корінь сайту - спочатку я цього не робив, не боячись, що мій прихований каталог SCM може виявитись викритим, але відповіді тут допомогли мені подолати це (хоча мені все ще не подобається мати його більше турбуватися про забуття, щоб переконатися, що все-таки правда з часом)
- Використання веб-ферми та систематичне розгортання до вузлів - це ідеальне рішення для нульового простою, що насправді щось мені хвилює, оскільки сайт, по суті, є джерелом доходу для моєї компанії в реальному часі - мені, можливо, важко переконати їх у вдвічі більше, ніж вартість серверів.
-> нарешті, повторне виконання основного принципу, який потребує розгортання в один клік для сайту АБО ВІДБУДУЄТЕ НЕЩО НЕБЕЗПЕЧНО, - це, мабуть, найкорисніше, що я отримав з відповідей.
ОНОВЛЕННЯ 2: Я думав, що я повернусь до цього і оновлюю фактичне рішення, яке існує вже багато місяців і працює чудово (для мого єдиного веб-сервера).
Я використовую процес:
- Внесіть зміни коду
- Натисніть на Git
- Віддалений робочий стіл до сервера
- Потягніть з Git
Запустіть наступний пакетний сценарій:
cd C: \ Користувачі \ Адміністратор
% systemroot% \ system32 \ inetsrv \ appcmd.exe зупинити сайт "/site.name:За веб-сайт за замовчуванням"
Документи роботокопії \ код \ da \ 1 \ робота \ Дерево \ LendingTreeWebSite1 c: \ inetpub \ wwwroot / E / XF з'єднанняconfig Web.config
% systemroot% \ system32 \ inetsrv \ appcmd.exe стартовий сайт "/site.name:За веб-сайт за замовчуванням"
Як ви бачите, це призводить до того, що сайт знижується, використовуючи роботокопію, щоб інтелектуально копіювати файли, які були змінені, а потім повертає сайт до резервного копіювання. Зазвичай працює менше ніж за 2 секунди. Оскільки піковий трафік на цьому веб-сайті становить приблизно 2 запити в секунду, прийнятне відсутність 4 запитів на оновлення сайту.
Sine Я став більш досвідченим з Git. Я виявив, що перші чотири кроки вище, як "ручний процес", також є прийнятним, хоча я впевнений, що міг би згорнути всю справу в один клік, якби захотів.
Документація для AppCmd.exe знаходиться тут . Документація на Robocopy знаходиться тут .