4

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

错误 8:创建 WebJob 计划时出错:找不到与提供的 WebSiteName [myapp__staging] 和 WebSiteUrl [ http://myapp-staging.azurewebsites.net]匹配的网站。

我有 2 个网络作业,一个连续网络作业和一个预定网络作业。

如本答案所述,我已登录正确的 Azure 帐户。

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

我的应用程序正在使用 ASP.NET,如果它有所作为?

4

2 回答 2

5

使用 Azure 调度程序时有一些怪癖。建议改用新的 CRON 支持。您可以在此处此处了解更多信息。

于 2015-11-03T23:39:41.617 回答
3

杰夫,

正如 David 建议的那样,您可以/应该迁移到新的 CRON 支持。这是一个例子。WebJob 将被部署为一个连续的 WebJob。

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

安装包 Microsoft.Azure.WebJobs -Pre 安装包 Microsoft.Azure.WebJobs.Extensions -Pre

此外,正如 David 建议的那样,如果您不使用 WebJobs SDK,您也可以使用settings.job文件运行它。他在这里举了一个例子

程序.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();
}

函数.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-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"
}
于 2015-11-04T12:04:34.710 回答