Подтвердить что ты не робот

Windows Service to Azure?

Я написал службу Windows на С#, которая выполняет целую кучу фоновых задач администрирования в базе данных. Теперь мой клиент хочет перенести весь shebang на Azure. Я почти ничего не знаю о Azure, и мой клиент говорит, что вы не можете запустить службу Windows на Azure. Я искал эту тему и нашел несколько конкретных примеров того, что кто-то сделал, чтобы переместить свою службу Windows на Azure, предполагая довольно высокий уровень понимания того, как работает Azure, но нет общих статей о том, будут ли Windows Сервисы могут работать под Azure или что делать, чтобы их адаптировать.

Мне бы очень хотелось увидеть ясный ответ и объяснение первого вопроса (можете ли вы запустить службу Windows под Azure?), и если ответ будет отрицательным, мне бы хотелось найти пошаговое руководство для преобразования службы Windows в нечто совместимое с Azure.

Спасибо!

4b9b3361

Ответ 2

Вы можете запускать все, что хотите, включая службу Windows.

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

Ответ 3

Для небольших заданий вы можете использовать средство Azure WebJob, которое работает в веб-приложении (полезно, если вы выполняете фоновые задачи с теми же данными, что и внешний интерфейс).

Там хорошая разбивка: https://azure.microsoft.com/en-us/documentation/articles/web-sites-create-web-jobs/

WebJobs довольно легко запускается, но не имеют возможности рабочих ролей. Для сравнения см. Следующее: Роль рабочего и веб-работа

Ответ 4

Да, не проблема, вот еще один приятный и простой пример Начало работы с Azure Cloud Services. Он (также) четко показывает, как реализовать WorkerRole. Вы можете использовать WebRole для управления вашим сервисом.

Ответ 5

Ниже перечислены шаги по установке службы Windows на Windows Azure под управлением VM с Windows Server 2012 R2:

  • запустите свою виртуальную машину в Windows Azure Console и подключитесь к ней с помощью соединителя удаленных рабочих столов
  • отобразите ваше хранилище в качестве нового диска в вашей виртуальной машине:

    net use z:\mystorage.file.core.windows.net\endoint/u: myusername verylongkeythatendswith ==

Ключ хранения можно найти в консоли Azure Management Console → Хранилища → Управление ключами доступа

  • скопируйте все необходимые файлы установки в сопоставленное хранилище (скопируйте и вставьте)
  • копировать nssm на локальный диск (а не z: поскольку он использует файловую систему MAFS и к которым нельзя получить доступ с помощью команд API низкого уровня Windows)
  • Создайте файл .bat со следующими данными

установить имя пользователя = xxx установить пароль = yyy вызов d:\nssm install "Мой сервис" "% programfiles%\PathToService\myservice.exe" "-p 8677"     d:\nssm установить "Мой сервис" ObjectName "% username%" "% password%"     sc failure "Мои действия" = перезагрузка/60000/перезагрузка/60000/перезагрузка/60000 reset= 240     d:\nssm начать "Моя служба"

Имя пользователя и пароль должны быть теми, которые вы использовали для создания виртуальной машины.

  • запустите script. Служба должна быть видимой в списке ваших услуг.

Наслаждайтесь!

PS: я использовал NSSM, чтобы упростить развертывание службы.

Ответ 6

Я бы использовал веб-задания для этого, его планирование и простота развертывания/конфигурации делают эту задачу тривиальной. Залейте свой .exe и загрузите его, затем установите расписание, и все готово.

Ответ 7

Да, на веб-сайте есть веб-задания задачи, которые могут создавать пакетные, wsh, powershell (требуется силовая оболочка лазурной оболочки) или использовать API веб-сервисов, API для отдыха, с другой стороны, у нас есть автоматизация Azure аналогичен, но использует рабочий поток