Я знаю, что это очень простой вопрос. Если бы кто-то мог меня развеселить и сказать, как они справятся с этим, я был бы очень рад.
Я решил опубликовать это, потому что я собираюсь установить SynchToy, чтобы устранить проблему ниже, и я чувствую себя немного непрофессионально, используя «Игрушку», но я не могу придумать лучшего способа.
Много раз, когда я нахожусь в такой ситуации, мне не хватает какого-то болезненно очевидного способа сделать что-то - это происходит от того, что я являюсь единственным разработчиком в компании.
- ASP.NET веб-приложение, разработанное на моем компьютере на работе
- Решение имеет 2 проекта:
- Сайт (файлы)
- WebsiteLib (C # / dll)
- Использование Git-репозитория
- Развернуто на веб-сервере GoGrid 2008R2
Развертывание:
- Внесите изменения в код.
- Нажмите, чтобы Git.
- Удаленный рабочий стол на сервер.
- Вытащить из Git.
- Перезапишите живые файлы, перетаскивая их с помощью проводника Windows.
На шаге 5 я удаляю все файлы из корня сайта .. это не очень хорошая вещь. Вот почему я собираюсь установить SynchToy ...
ОБНОВЛЕНИЕ: СПАСИБО за все полезные ответы. Я не могу выбрать, какой из них пометить ответ - между использованием веб-развертывания - похоже, у меня есть несколько полезных предложений:
- Веб-проект = весь сайт, упакованный в одну DLL - недостаток для меня, я не могу пускать простые обновления - будучи одиноким разработчиком в компании из 50, это иногда бывает проще.
- Вытягивание прямо из SCM в корень веб-сайта - я изначально не делал этого из страха, что мой скрытый каталог SCM может оказаться разоблаченным, но ответы здесь помогли мне преодолеть это (хотя мне все еще не нравится иметь один побольше беспокоиться о том, чтобы забыть, чтобы убедиться, что все еще верно со временем)
- Использование веб-фермы и систематическое развертывание на узлах - это идеальное решение для нулевого времени простоя, что на самом деле меня беспокоит, поскольку сайт является источником дохода для моей компании в реальном времени - мне может быть трудно убедить их удвоить стоимость серверов.
-> И наконец, повторное применение основного принципа, что для сайта необходимо выполнить развертывание одним щелчком ИЛИ ЛИБО ЧТО-ТО НЕПРАВИЛЬНО, вероятно, самая полезная вещь, которую я получил из ответов.
ОБНОВЛЕНИЕ 2: Я подумал, что вернусь к этому и обновлю свое реальное решение, которое существует уже много месяцев и работает отлично (для моего решения с одним веб-сервером).
Процесс, который я использую:
- Внести изменения в код
- Нажмите, чтобы Git
- Удаленный рабочий стол на сервер
- Вытащить из Git
Запустите следующий пакетный скрипт:
cd C: \ Users \ Администратор
% systemroot% \ system32 \ inetsrv \ appcmd.exe остановка сайта "/site.name:Default Web Site"
robocopy Documents \ code \ da \ 1 \ work \ Tree \ LendingTreeWebSite1 c: \ inetpub \ wwwroot / E / XF connectionsconfig Web.config
% systemroot% \ system32 \ inetsrv \ appcmd.exe стартовый сайт "/site.name:Default Web Site"
Как вы можете видеть, это приводит к падению сайта, использует robocopy для интеллектуального копирования файлов, которые изменились, а затем восстанавливает сайт. Обычно он выполняется менее чем за 2 секунды. Поскольку максимальный трафик на этом сайте составляет около 2 запросов в секунду, пропущено 4 запроса на обновление сайта.
Так как я стал более опытным с Git, я обнаружил, что первые четыре шага, описанные выше как «ручной процесс», также приемлемы, хотя я уверен, что мог бы свернуть все это в один клик, если бы захотел.
Документация для AppCmd.exe находится здесь . Документация по Robocopy находится здесь .