C# 如何在本地运行Azure WebJob?
我想创建一个持续运行的WebJob,但首先我想尝试在本地运行它以进行调试。我使用的是Visual Studio 2015,并且Azure存储模拟器正在运行(我可以在Visual Studio中运行Azure WebJobs的示例) 当我运行以下命令时,它在C# 如何在本地运行Azure WebJob?,c#,azure,azure-webjobs,C#,Azure,Azure Webjobs,我想创建一个持续运行的WebJob,但首先我想尝试在本地运行它以进行调试。我使用的是Visual Studio 2015,并且Azure存储模拟器正在运行(我可以在Visual Studio中运行Azure WebJobs的示例) 当我运行以下命令时,它在new JobHost()行失败,原因是: 异常:值不能为null。参数名称:方法 我甚至可以在本地运行连续运行的作业吗?Azure WebJobs通常只是控制台应用程序。您可以在本地运行它,就像调试、测试和运行任何其他控制台应用程序一样。我建
new JobHost()
行失败,原因是:
异常:值不能为null。参数名称:方法
我甚至可以在本地运行连续运行的作业吗?Azure WebJobs通常只是控制台应用程序。您可以在本地运行它,就像调试、测试和运行任何其他控制台应用程序一样。我建议获取并运行教程。问题:控制方法调用的频率,删除while循环和睡眠计时器,然后在Azure仪表板中使用cron表达式进行设置,这不是一种更灵活的方法吗?然后你就可以控制它,而不需要重新部署代码。为了完整性,这并不完全正确。Azure web作业环境与本地PC不同。几乎所有共享资源(注册表、图形等)都不可访问:这两个链接现在都指向project WiKi。这里有另一个指向文档并解释如何在本地运行作业的链接:@UlyssesAlves的链接将您带到a巴西葡萄牙语页面-这是英文版,这可能也很有用@avs099。区别在于它运行的是硬件,对于rest,它几乎是一个控制台应用程序,使用Azure存储同步作业。在cloud/Azure上运行的Webjobs不共享本地资源。
static void Main()
{
var host = new JobHost();
host.CallAsync(typeof(Functions).GetMethod("GetNextJob"));
// The following code ensures that the WebJob will be running continuously
host.RunAndBlock();
}
[NoAutomaticTriggerAttribute]
public static async Task GetNextJob()
{
while(true)
{
try
{
var log = new Logger();
log.WriteInfo("Getting next job to be run", 0, 0, "Brain");
//Console.WriteLine("Getting new Job and putting to que");
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
await Task.Delay(TimeSpan.FromSeconds(5));
}
}