Azure. Как выполнить задачи запуска для каждой записи сайта в веб-роле?

У нас есть WebRole, которая размещает несколько сайтов. Мы создали задачи запуска для каждого сайта с некоторыми специфическими для сайта действиями. Проблема заключается в том, что во время развертывания можно запустить только задачу запуска первого сайта (первый сайт указан в разделе).

Похоже, это происходит потому, что только первый сайт (или тот, который определен из веб-роли) будет скопирован в папку [диск]:\ Approot в экземпляре WebRole. Все остальные сайты будут скопированы в [диск]:\sites\ (раньше это было другое место, поэтому оно могло быть предметом будущих изменений).

Есть ли простой способ запуска командных файлов для каждого сайта в [диск]:\sites\?

Есть ли уловки с объектом RoleEnvironment или значениями xPath (например, здесь http://msdn.microsoft.com/en-us/library/windowsazure/hh404006.aspx), которые могут предоставить точный путь, где будут размещаться дополнительные сайты?

У ATM есть 2 варианта, оба хакерские и нестабильные, imo: 1. Чтение данных из конфигурации IIS и использование их в качестве входных данных для основной задачи запуска 2.Scan /sites/ для сценариев с явно заданными именами и выполнение их при обнаружении.

1 ответ

Решение

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

Что касается выяснения сайтов каталогов, проверьте этот вопрос, так как ответ полностью охватывает задачу. Я использую его, он на 100% надежен для производства.

Другие вопросы по тегам