Какой лучший способ развернуть исполняемый процесс на веб-сервере? - PullRequest
7 голосов
/ 14 декабря 2009

Оригинальный вопрос:

Название этого вопроса может быть немного неуклюжим, но вот ситуация:

На моем сервере развернут веб-проект .NET. Это все еще в бета-версии, так что много релизов и переизданий происходит.

Я также написал исполняемый файл C # в том же решении VS (назовите его «admin.exe»), который выполняется в фоновом режиме на сервере, периодически выполняя определенные проверки целостности бизнес-правил и делая соответствующие вставки в таблицу предупреждений в DB.

Вопрос: как лучше всего развернуть это приложение, чтобы оно обновлялось всякий раз, когда я делаю новый выпуск? Он должен работать все время между выпусками, поэтому в идеале я бы хотел какую-то настройку, при которой процесс shutdown-deploy-startup включает минимально возможное количество шагов.

Спасибо!

Редактировать - Баунти начался

Ответы, данные до сих пор, были полезными и интересными, но не дали мне ясного, лаконичного и элегантного решения. Пожалуйста, не думайте, что я обладаю обширными знаниями о проектах развертывания, потому что я не знаю. Щедрость идет к человеку, который может предоставить решение, которое делает следующее:

  1. Публикация последней версии веб-сайта;
  2. Завершить работу всех экземпляров admin.exe, работающих на сервере;
  3. Обновление admin.exe;
  4. Запустить admin.exe;
  5. Все вышеперечисленное следует выполнять предпочтительно за один шаг или как можно меньше этапов, поскольку это будет повторяться в течение всего срока службы продукта; и
  6. Все вышеперечисленное должно выполняться предпочтительно без необходимости установки какого-либо программного обеспечения сторонних производителей.

Спасибо за помощь!

Незначительное редактирование - уточнение

Я думаю, что многие предлагаемые решения переоценили сложность проблемы, поэтому позвольте мне уточнить: все, что должно быть развернуто, должно быть развернуто только на одном компьютере, который также К счастью, Visual Studio доступна со всем исходным кодом. Мне нужно только (1) опубликовать веб-сайт в веб-папке и (2) закрыть, переустановить и перезапустить admin.exe на том же сервере. Разве нет простого способа сделать это за один шаг? Можно ли это сделать с помощью проекта VS Deployment?

Ответы [ 11 ]

0 голосов
/ 26 января 2010

Мне кажется, что ваша проблема во многом похожа на проблему развертывания, которую SharePoint решает с помощью службы Timer, работающей в каждом WFE, ставит в очередь задачи администрирования stsadm, эта служба снимает с них очередь, запускает их и т. Д.

Что бы я сделал, это

  • написать сервис, работающий в каждом WFE
  • написать небольшой пользовательский инструмент "stsadm", чтобы вы могли ставить задачи в очередь, указывать, когда они должны выполняться, и т. Д.

Другой подход: как насчет использования простого планировщика задач Windows? Посмотрите здесь , вы можете легко ставить задачи удаленно, например,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...