Azure 模拟Webjob关闭以进行调试

Azure 模拟Webjob关闭以进行调试,azure,azure-webjobs,Azure,Azure Webjobs,情景: 我已经用CancellationToken连接了Web作业,需要模拟关机,以查看是否成功处理了取消。我尝试了Ctrl+C组合,但取消没有触发。出于调试目的,模拟此关闭的正确方法是什么?由于这是调试代码,所以进行了一些修改。在我的例子中,问题是CancellationToken是通过框架调用传递的,不允许访问CancellationTokenSource private async Task InitializeEventProcessing(CancellationToken ctx)

情景:
我已经用CancellationToken连接了Web作业,需要模拟关机,以查看是否成功处理了取消。我尝试了Ctrl+C组合,但取消没有触发。出于调试目的,模拟此关闭的正确方法是什么?

由于这是调试代码,所以进行了一些修改。在我的例子中,问题是CancellationToken是通过框架调用传递的,不允许访问CancellationTokenSource

private async Task InitializeEventProcessing(CancellationToken ctx)
    {

#if DEBUG
        CancellationTokenSource cts = new CancellationTokenSource(TimeSpan.FromSeconds(10));
        ctx = cts.Token;
#endif
     .
     .
     .
    }

我真的不喜欢另一个答案,所以这里是我所做的

内置的
webjobshutdownwatcher
查找环境变量WEBJOBS\u SHUTDOWN\u文件并监视更改

如果您将调试设置配置为为该环境变量提供文件名,那么您所要做的就是创建该文件(内容无关紧要),它将遵循与部署时相同的关闭路径


当然,您必须在之后删除它,或者添加一个构建步骤,以便在调试或其他操作时删除它,但至少它在主机上执行与正常关机相同的代码。

您只需等待X秒,然后取消令牌?@Thomas:谢谢您的指针。我最终创建了一个新的cancelationtoken,它包装在调试前处理器中,并能够对其进行测试。如果您有时间,请发布您的答案,其他人可能会感兴趣。