【问题标题】:Add WebJobs to WebApp with Azure Fluent API使用 Azure Fluent API 将 WebJobs 添加到 WebApp
【发布时间】:2018-07-10 01:21:39
【问题描述】:

是否可以使用 Azure Fluent API 将 WebJob 添加到 WebApp?我没有找到任何描述这一点的文档。

【问题讨论】:

    标签: azure azure-webjobs fluent


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      正如Lachie所说,似乎没有Fluent API支持添加WebJobs,你可以使用WebJobs KUDU API来实现。

      我为此做了一个演示。它在我的网站上正常工作。以下是我的详细步骤:

      准备

      1.WebJob API 需要Basic Authentication 使用发布凭据,您可以在 azure 门户中访问您的 webapp 点击Get publish profile 并下载它以获取用户名和用户密码。

      2.压缩要发布的WebJob文件。

      步骤

      1.创建一个C#控制台项目。

      2.在Program.cs文件中添加如下代码。

      string userName = "$name";
      string userPassword = "pass";
      string webAppName = "webappname";
      string webJobName = "webjobname";
      var base64Auth = Convert.ToBase64String(Encoding.Default.GetBytes($"{userName}:{userPassword}"));
      var file = File.ReadAllBytes(@"webjob zip file path");
      MemoryStream stream = new MemoryStream(file);
      using (var client = new HttpClient())
      {
          client.DefaultRequestHeaders.Add("Authorization", "Basic " + base64Auth);
          client.DefaultRequestHeaders.Add("ContentType", "application/zip");
          var baseUrl = new Uri($"https://{webAppName}.scm.azurewebsites.net/");
          var requestURl = baseUrl + "api/continuouswebjobs/"+webJobName;
          var httpContent = new StreamContent(stream);
          httpContent.Headers.Add("Content-Disposition", "attachement;filename="+ webjob.exe);
          var response2 = client.PutAsync(requestURl, httpContent).Result;
      }
      

      注意filename 应该在 Content-Dispostion 标头中。这里我部署的是持续webjob,如果要部署trigger webjob,可以将continuouswebjobs改为triggeredwebjobs

      3.本地测试。 4.在azure上查看发布的结果。

      【讨论】:

        猜你喜欢
        • 2015-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-26
        • 2022-06-13
        • 1970-01-01
        相关资源
        最近更新 更多