从webhook调用时,Azure WebJob控制台应用程序空Args

时间:2018-06-09 15:34:19

标签: azure azure-webjobs asp.net-webhooks

我正在使用Azure WebJob。 我首先在Visual Studio中创建一个控制台应用程序,然后在VisualStudio的portal.azure中将该应用程序作为webJob发布。

WebJob是来自第二个程序的usernamepassword https://{MyWebAPP}.scm.azurewebsites.net/api/triggeredwebjobs/{MyWebJob}/run?arguments=1 2 3来自其Webhook的触发器。

这个WebJob非常简单。它只显示参数1,2和3。

当我从CommandeLine运行程序时dotnet MyProject.dll 1 2 3就可以了。 但是当我从webHook运行它时,它不会读取参数。

这是我的主要脚本:

 class Program
{
    static void Main(string[] args)
    {

        Console.WriteLine("PARAMS Passed : " + string.Join(",", args));
    }
}

当我通过Post请求从WebHook运行时,这是WebJob中的日志:[06/09/2018 15:19:37 > 33a9f2: INFO] PARAMS Passed :

当我从commande Line运行它时,这是控制台:[06/09/2018 15:19:37 > 33a9f2: INFO] PARAMS Passed : 1,2,3

请帮助一下。 Tha,ks From All。

1 个答案:

答案 0 :(得分:7)

这归结为VS发布错误。问题是它会自动生成run.cmd,其中包含:

dotnet foo.dll

什么时候真的应该:

dotnet foo.dll %*

这样参数就会流入你的控制台应用程序。

我会报告此问题,但现在您可以按如下方式解决:

  • 在控制台应用的根目录(即program.cs旁边)显式创建run.cmd。使其包含%*上方的正确行。显然,使用您的实际DLL名称而不是foo.dll:)
  • 将其添加到您的项目中,并将Copy to Output Directory设置为Copy Always(默认为不复制)。

这将导致部署run.cmd,VS不会自动生成错误的。{/ p>