Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在本地运行Azure WebJob?_C#_Azure_Azure Webjobs - Fatal编程技术网

C# 如何在本地运行Azure WebJob?

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通常只是控制台应用程序。您可以在本地运行它,就像调试、测试和运行任何其他控制台应用程序一样。我建

我想创建一个持续运行的WebJob,但首先我想尝试在本地运行它以进行调试。我使用的是Visual Studio 2015,并且Azure存储模拟器正在运行(我可以在Visual Studio中运行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));
        }
    }