未触发dotnet核心Azure webjob

时间:2018-10-19 13:44:29

标签: azure .net-core azure-webjobs azure-web-app-service azure-webjobssdk

我有一个使用dotnet核心构建的Azure Webjob,并且已将其部署到Azure App Service上的部署插槽。我已按照https://blogs.msdn.microsoft.com/azuredev/2018/08/22/webjobs-in-azure-with-net-core-2-1/的说明进行操作,以便将Webjob发布到正确的文件夹中,并添加run.cmd来调用dll。

正在通过VSTS部署Webjob。与博客文章中描述的方法相同。 (在App_Data \ jobs \文件夹下)。出于某种原因,它仅在我部署到App_Data \ jobs \ continuous而不是按预期的方式部署到App_Data \ jobs \ trigger时才使消息出队。有线索吗?

2 个答案:

答案 0 :(得分:1)

我认为您的问题与“触发的Web作业”应该做什么有关。这令人困惑,但触发的WebJob仅在triggered manually or on a schedule时才开始。您想要的是一个连续的WebJob。您可以将其视为WebJob(连续)在寻找一个队列输入,该队列输入将触发您的代码执行。

David在this SO post中回答问题做得非常好,因此我将重新发布他的一些答案:

  

听起来您正在使用Azure WebJobs SDK 。在SDK方案中,即使“触发”了您的各个功能,WebJob仍会连续运行(即,您的exe继续运行并进行自己的内部触发)。

答案 1 :(得分:-1)

  

支持许多文件类型,但是对于Windows用户来说,使用exe,cmd,bat或PowerShell文件是有意义的。   控制台应用程序曾经是exe文件,但是在.NET Core中,它会生成一个常规的DLL文件,我们需要手动启动该文件。

作为您提供的链接,要运行它的WebJob需要一些可执行脚本,可用于执行该脚本。对于.net核心,它需要手动执行dll文件才能启动它。

尽管我们还需要执行run.cmd,但我们无法自行创建它。您可以下载此webjob core sample,它在dotnet core 2.0应用程序中使用Azure WebJobs SDK。部署到Azure时,它将自动创建一个run.cmd文件以启动webjob。

相关问题