2016-11-22 4 views
0

Я использую WebDeploy и сталкиваюсь с проблемой, с которой я не могу обойтись. Во-первых, я опишу свои идеи, а затем займусь вопросом, который у меня есть.Частичное резервное копирование WebDeploy Откат

В настоящее время у нас есть много приложений, работающих под корневым каталогом веб-сайта в IIS. Мы хотим иметь возможность развертывать и откатываться на уровне приложений, а не на уровне веб-сайта.

Когда мы хотим запустить приложение, пользователь создаст пакет webdeploy в IIS. Затем они перевернут это с помощью Web Deploy. В настоящее время, когда WebDeploy выкатывает приложение, он берет резервную копию всего веб-сайта (многие приложения), если нам нужно откат. Это хорошо работает для развертывания, но откаты - это то место, где у меня возникает проблема. См. «Откат», я не хочу откатывать весь сайт. Я только хочу развернуть то, что изменилось во время этого развертывания. Это важно, чтобы избежать перехода на носки других развертываний, которые могут выполняться.

Чтобы удовлетворить это требование, я написал код, который существенно отличается от исходного пакета развертывания с помощью резервного пакета. Если файл присутствовал в пакете первоначального развертывания, мы захватили соответствующий файл в резервном пакете. После того, как у нас есть все файлы из резервной копии, соответствующие начальному развертыванию, я копирую файлы systeminfo.xml, parameters.xml и archive.xml из резервной копии и использую все эти файлы для создания нового zip-файла, который я буду называть пакет отката. Теперь пакет отката имеет ту же структуру папок, что и резервный, он просто пропускает файлы из резервной копии, которые не были заменены в первоначальном развертывании. Проблема, с которой я сталкиваюсь, заключается в том, что когда я отправляю этот новый пакет отката на веб-развертывание api, я не получаю никаких сообщений об ошибках, но файлы на веб-сервере не заменяются файлами отката. После дальнейшего изучения я обнаружил, что веб-развертывание api возвращает объект DeploymentChangeSummary. Этот объект показывает все нули для скопированных байтов, замененных файлов и т. Д. (В основном ничего не было заменено, но веб-развертывание не обнаруживает ошибок). Когда я передаю весь файл резервной копии через тот же код, файлы на веб-сервере заменяются, а DeploymentChangeSummary показывает файлы и байты.

Почему я могу развернуть всю резервную копию веб-сайта, но не частичную? У меня такое чувство, что это может быть связано с копированием .xml-файлов из резервной копии в свиток, потому что их, возможно, придется модифицировать, но я не уверен. Кроме того, я не использую контрольную сумму.

ответ

0

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

"c:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:manifest="manifest.source.xml" -dest:package=websitepackage.zip 

Следующее сообщение выполняет шаги, вручную создающие пакет из командной строки. В этом случае это для сайта ASP.NET, но будет работать с любым сайтом/приложением ASP.NET:

http://www.dotnetcatch.com/2016/06/23/deploy-an-asp-net-website-not-web-application-with-msdeploy/

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

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