运行基本的免费Windows Azure Web应用程序以进行测试我经常超过3分钟的CPU时间(短)配额。
例如,在试用图像优化Nuget包AzureImageOptimizer(实现为Web作业)时,初始优化运行超出限制并停止服务器。
我注意到这些事件没有记录在Web App的活动日志中。为什么呢?
问题:
奖金问题:
答案 0 :(得分:0)
是否记录了这些事件?
没有。如果应用程序的使用量超过CPU(短),CPU(日)或带宽配额,则应用程序将停止,直到配额重新设置。不会将日志写入任何地方。
是因为这是一个免费的网络应用程序吗?
免费和共享计划都有资源限制。
是否可以配置Web应用程序以便记录它们?
我还没有找到任何办法。
是否有其他方法可以捕获这些事件?
由于您使用的是WebJob,因此可以在函数中添加CancellationToken参数。如果Web应用程序已停止。在函数停止之前,IsCancellationRequested属性将设置为true。
public static void ProcessQueueMessage([QueueTrigger("myqueue")] string message, CancellationToken cancellationToken)
{
Task.Run(new Action(longTimeJob), cancellationToken);
while (true)
{
Thread.Sleep(1000);
if (cancellationToken.IsCancellationRequested)
{
Console.WriteLine("The function has been Cancelled since the Web App is stopped!");
}
}
}
以下是我在停止Web应用程序时从Azure WebJobs仪表板捕获的信息。
[06/07/2017 07:52:53 > 9d3635: INFO] The function has been Cancelled since the Web App is stopped!
[06/07/2017 07:52:53 > 9d3635: ERR ] Thread was being aborted.
[06/07/2017 07:52:53 > 9d3635: SYS INFO] WebJob process was aborted
[06/07/2017 07:52:54 > 9d3635: SYS INFO] Status changed to Stopped