c# - 发送多个参数到触发的Azure webjos

标签 c# .net azure azure-webjobs

我试图在触发时向 azure webjob 发送多个参数。据此https://github.com/projectkudu/kudu/wiki/WebJobs-API#invoke-a-triggered-job ,

我可以这样调用它: POST/api/triggeredwebjobs/{作业名称}/run?arguments={arguments}

我尝试了多种方法来添加多个参数,例如:

?arguments=1&arguments=2
?arguments[]=1&arguments[]=2
?arguments[0]=1&arguments[1]=2
?arguments={1,2}

等等,我尝试了一些更愚蠢的东西,还尝试使用表单数据。似乎没有一个起作用。我的网络作业只接受第一个参数。例如,当我这样做时:

static void Main(string[] args)
{
        Console.WriteLine(args[0]);
        Console.WriteLine(args[1]);
}

第一个适用于上面的示例,但是第二行出现异常,表示索引超出范围。有没有办法用多个参数触发 webjob,如果是的话我该如何实现?

最佳答案

我认为您正在寻找的金 block 是:

run?arguments={arg1} {arg2}

完整的工作示例将如下所示:

using (var client = new HttpClient())
{
    client.BaseAddress = new Uri("https://your-app-name.scm.azurewebsites.net/");
    client.DefaultRequestHeaders.Accept.Clear();

    //username and password from Publish Profile, can test via https://your-app-name.scm.azurewebsites.net/basicAuth
    var userName = "$your-app-name";
    var password = "go30T5qqBfl0mv3wzhezrkifrKrPEw78ZieLE0JfwYEZ1yx6wy3hDgygBvbM";

    var encoding = new ASCIIEncoding();
    var authHeader = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(encoding.GetBytes(string.Format($"{userName}:{password}"))));
    client.DefaultRequestHeaders.Authorization = authHeader;

    HttpResponseMessage response = await client.PostAsync($"api/triggeredwebjobs/YourTriggeredWebJob/run?arguments={arg1} {arg2}", new StringContent(""));
}

关于c# - 发送多个参数到触发的Azure webjos,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37308775/

相关文章:

Azure Log Analytics - 比较两个消息跟踪以在其中一个更新时发出警报

c# - 合并列表列表中的交叉项

c# - 没有注册类型 'Microsoft.Framework.DependencyInjection.ServiceLookup.IServiceManifest' 的服务

javascript - 如何将文件上传选择插入到 GridView 中,然后添加新行?

c# - 我如何将一个类(派生自通用 "base"类)转换为该通用 "base"类

c# - 使用 UIAutomation 获取 Datagrid 的全部内容

Azure 辅助角色每天在故障存储桶事件后停止

c# - 如何在 C# .net 中每天早上执行一个方法

c# - 任务中的 System.Windows.Forms.dll 中出现“System.InvalidOperationException”

sql-server - Azure SQL 数据库最快的备份/恢复策略?