4

я только что создал новый слот развертывания для моего приложения, импортированного профиль публикации в Visual Studio, но после развертывания я получаю сообщение об ошибке:Издательского веб-приложения для Azure сайтов STAGING слота развертывания терпит неудачу с webjob

Ошибке 8: Произошла ошибка при создании расписания WebJob: не было найдено ни одного веб-сайта, который бы соответствовал запросу WebSiteName [myapp__staging] и WebSiteUrl [http://myapp-staging.azurewebsites.net].

У меня есть 2 webjobs, непрерывный и запланированный веб-сайт.

Я уже вступил в правильную учетную запись Azure, как указано this answer.

Нужно ли мне установить что-то еще, чтобы развернуть мое приложение в промежуточном слоте для развертывания с помощью webjobs?

Мое приложение использует ASP.NET, если это имеет значение?

ответ

3

Джефф,

Как предположил Дэвид, вы можете/должны перейти на новую поддержку CRON. Вот пример. WebJob будет развернут как непрерывный WebJob.

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

Install-Package Microsoft.Azure.WebJobs -Pre Install-Package Microsoft.Azure.WebJobs.Extensions -Pre

Кроме того, как полагает Дэвид, если вы не используете WebJobs SDK, вы также можете запустить его, используя файл .job. Он привел пример here.

Program.cs

static void Main() 
{ 
    //Set up DI (In case you're using an IOC container) 
    var module = new CustomModule(); 
    var kernel = new StandardKernel(module); 

    //Configure JobHost 
    var storageConnectionString = "your_connection_string"; 
    var config = new JobHostConfiguration(storageConnectionString) { JobActivator = new JobActivator(kernel) }; 
    config.UseTimers(); //Use this to use the CRON expression. 

    //Pass configuration to JobJost 
    var host = new JobHost(config); 
    // The following code ensures that the WebJob will be running continuously 
    host.RunAndBlock(); 
} 

Function.cs

public class Functions 
{ 
    public void YourMethodName([TimerTrigger("00:05:00")] TimerInfo timerInfo, TextWriter log) 
    { 
     //This Job runs every 5 minutes. 
     //Do work here. 
    } 
} 

Вы можете изменить расписание в атрибуте TimerTrigger.

UPDATE файл добавляется webjob опубликуйте-settings.json

Вот пример webjob-publiss-settings.json

{ 
    "$schema": "http://schemastore.org/schemas/json/webjob-publish-settings.json", 
    "webJobName": "YourWebJobName", 
    "startTime": null, 
    "endTime": null, 
    "jobRecurrenceFrequency": null, 
    "interval": null, 
    "runMode": "Continuous" 
} 
+0

Ницца - что-нибудь, что мне нужно изменить в моем веб-файле JSON? – Jeff

+1

@Jeff Убедитесь, что он настроен на запуск как непрерывный веб-сайт. Я обновляю свой ответ с помощью своего файла JSON. – lopezbertoni

+0

Отлично, спасибо! Итак, когда использовать Планировщик вместо этого? При использовании рабочих ролей? – Jeff

5

При использовании Azure Scheduler существует несколько причуд. Вместо этого рекомендуется использовать новую поддержку CRON. Вы можете узнать больше об этом here и here.

+0

Они делают то же самое? – Jeff

+0

@Jeff Они делают. Вы можете сделать то же самое с обоими. – lopezbertoni

+0

@lopezbertoni большой! Так что мне просто нужно удалить расписание, прежде чем применять новый материал CRON? Или есть ли больше, чтобы преобразовать существующий webjob для использования CRON? – Jeff

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