首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从webhook调用时,Azure WebJob控制台应用程序为空参数

从webhook调用时,Azure WebJob控制台应用程序为空参数
EN

Stack Overflow用户
提问于 2018-06-09 23:34:19
回答 1查看 478关注 0票数 2

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

WebJob是通过第二个程序中的usernamepassword https://{MyWebAPP}.scm.azurewebsites.net/api/triggeredwebjobs/{MyWebJob}/run?arguments=1 2 3从其Webhook手动触发的。

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

当我像dotnet MyProject.dll 1 2 3这样从CommandeLine运行程序时,它工作得很好。但是当我在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 :

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

有人能帮帮忙吗?谢谢大家。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-10 00:44:32

这归结为一个VS发布错误。问题是它会自动生成一个run.cmd,它具有:

dotnet foo.dll

当它真正应该有的时候:

dotnet foo.dll %*

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

我将报告该问题,但目前您可以按如下方式解决:

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

这将导致您的run.cmd被部署,并且VS不会自动生成有问题的那个。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50775863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档