使用 webjob 将 Web 应用程序发布到 Azure 网站暂存部署槽失败

Publishing web app to Azure Websites Staging deployment slot fails with webjob

我刚刚为我的应用程序创建了一个新的部署槽,将发布配置文件导入到 Visual Studio,但部署后我收到此错误消息:

Error 8: An error occurred while creating the WebJob schedule: No website could be found which matches the WebSiteName [myapp__staging] and WebSiteUrl [http://myapp-staging.azurewebsites.net] supplied.

我有 2 个网络作业,一个连续的和一个计划的网络作业。

我已经登录到正确的 Azure 帐户,如 this answer 所述。

我是否需要进行其他设置才能将我的应用程序部署到带有 webjobs 的暂存部署槽?

我的应用程序正在使用 ASP.NET,它是否有影响?

使用 Azure 调度程序时有一些问题。建议改用新的 CRON 支持。您可以了解更多 here and here.

杰夫,

正如 David 所建议的,您 can/should 迁移到新的 CRON 支持。这是一个例子。 WebJob 将作为连续的 WebJob 部署。

请记住,为了使用它,您需要安装当前预发布的 WebJobs 包和扩展。您可以在 Nuget 上获取它们。

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

另外,正如 David 所建议的,如果您不使用 WebJobs SDK,您也可以 运行 使用 settings.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 属性中更改计划。

更新 添加了 webjob-publish-settings.json 文件

这是 webjob-publis-settings.json

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