使用Azure Fluent API将WebJobs添加到WebApp

时间:2018-07-10 01:21:40

标签: azure azure-webjobs fluent

是否可以使用Azure Fluent API将WebJob添加到WebApp?我找不到任何描述此内容的文档。

2 个答案:

答案 0 :(得分:1)

我相信答案是否定的,并且您必须使用Azure Kudu WebJob API

有关该信息的更多信息,请参见:
https://github.com/projectkudu/kudu/wiki/WebJobs-API
https://blogs.msdn.microsoft.com/benjaminperkins/2016/02/01/using-the-azure-webjob-api/

答案 1 :(得分:0)

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

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

准备工作

1。WebJob API需要使用发布凭据进行基本身份验证,您可以在azure门户中转到您的web应用,单击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,如果要部署触发器webjob,可以将continuouswebjobs更改为triggeredwebjobs

3。从本地进行测试。 enter image description here 4.Azure上检查发布的结果。

enter image description here