Azure WebJob 不会在调试器中本地运行

标签 azure azure-webjobs

我的Azure WebJob曾经在VS2015调试器中运行,但我发现它逐渐变得非常断断续续,现在根本无法运行。如果我将其部署到 Azure,它工作得很好。该作业被标记为 RunOnStartUp。

public class Program
{
    static void Main()
    {
        var config = new JobHostConfiguration();
        config.UseTimers();
        var host = new JobHost(config);
        host.RunAndBlock();
    }
}

public class TestJob : BaseJob
{
    public static async Task StartupJob([TimerTrigger("05:00:00", RunOnStartup = true)] TimerInfo timerInfo, TextWriter log)
    {
        log.WriteLine("StartupJob");
        await Jobs.Test(some params);
        log.WriteLine("Sorted");
    }
}

我需要做什么才能让它在调试器中运行?

最佳答案

我猜您在 Azure 中的工作以及本地调试时使用相同的存储帐户?如果是这种情况 - TimeTrigger 作为单例运行,这意味着它需要获取锁才能执行。如果您的 webjob 已在 Azure 中运行,您尝试调试的本地版本将无法获取锁。

为避免这种情况,只需为“实时”Azure 版本和本地本地开发使用不同的存储帐户即可。

我还建议在本地调试时启用“开发设置” - config.UseDevelopmentSettings();。如果启用它,您将看到消息“无法获取功能锁...”(或类似的内容)。

关于Azure WebJob 不会在调试器中本地运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39945912/

相关文章:

c# - 将 WebJobs 与 Azure 服务总线和 session 一起使用

c# - 一个队列上的多个 Azure Webjob 实例(第 2 部分)

asp.net - 将用户名和项目标记到数据库中

Azure 经典虚拟机。如何修复错误 : "We couldn' t complete the updates. 撤消更改。不要关掉你的电脑。”

Azure 上 Wordpress 内的 ASP.Net

c# - Azure Webjob TimerTrigger 不工作

azure - WindowsEventLogs 未登录到 Azure

msbuild - 在 afterbuild msbuild 事件中将文件添加到 Azure cspkg?

azure - 为 Azure WebJob 部署子文件夹