Публикация веб-приложения на веб-сайтах Azure Сбой промежуточного развертывания завершается веб-заданием

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

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

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

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

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

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

2 ответа

Решение

Джефф,

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

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

Пакет установки Microsoft.Azure.WebJobs -Pre Пакет установки Microsoft.Azure.WebJobs.Extensions -Pre

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

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. 
    }
}

You can change the schedule in the TimerTrigger attribute.

UPDATE Added the webjob-publish-settings.json file

Here's an example of the 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"
}

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

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