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

Rob*_*ick 4 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");
    }
}
Run Code Online (Sandbox Code Playgroud)

要使它在调试器中运行,我需要做什么?

Raf*_*jac 11

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

为避免这种情况,只需使用不同的存储帐户进行"实时"Azure版本和本地本地开发.

我还建议启用"开发设置" - config.UseDevelopmentSettings(); - 在本地调试时.如果你启用它,你会看到消息"无法获取功能锁..."(或类似的东西).