未触发dotnet核心Azure网络作业



我有一个用dotnet核心构建的Azure网络作业,它已经部署到Azure应用程序服务上的部署槽中。我遵循了以下说明:https://blogs.msdn.microsoft.com/azuredev/2018/08/22/webjobs-in-azure-with-net-core-2-1/以便在正确的文件夹中发布webjob,并添加run.cmd来调用dll。

正在通过VSTS部署Web作业。就像博客文章中描述的一样。(在App_Data\jobs\文件夹下)。出于某种原因,只有当我部署到App_Data\jobs\continuous而不是应该触发的App_Data\ jobs\triggered时,它才会使消息出列。有什么线索吗?

我认为你的问题是关于"触发式Web作业"应该做什么的期望。这是一个令人困惑的措辞,但触发式Web工作只有在手动或按计划触发时才会启动。你想要的是一个连续的WebJob。您可以将其视为WebJob不断寻找将触发代码执行的队列输入。

大卫在这篇SO文章中很好地回答了这个问题,所以我将转发他的一些答案:

听起来你在使用Azure WebJobsSDK。在SDK场景中,即使您的单个函数被"触发",WebJob作为一个整体也会持续运行(即您的exe保持运行并进行自己的内部触发)。

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

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

虽然我们也需要执行run.cmd,但我们无法自己创建它。你可以下载这个网络作业核心示例,它在dotnet核心2.0应用程序中使用Azure WebJobs SDK。当你部署到azure时,它会自动创建一个run.cmd文件来启动webjob。

最新更新