C# 触发Web作业完全执行,然后在121秒后超时中止
我有一个webjob,当一个新项目添加到存储队列时,它正在Azure中成功触发 当它被触发时,我检查日志,所有编写的代码都已正确执行,但web作业仍处于“仍在执行”状态,执行121秒后它将中止 下面是触发的方法,后面是日志文件,您可以看到“开始处理内容”写入日志,“处理内容已完成”写入日志。这告诉我,一切都执行得很好,就我所知,我不需要做任何其他特殊的事情来表明这是成功执行的 因此,我认为Web作业应该如何工作,这将被认为是一个成功的执行。相反,它在仪表板中被标记为“失败”,并完全停止web作业(即使它被设计为在连续模式下工作)。此外,应用程序服务设置为始终打开 错误中增加超时的建议毫无意义。所有这些将要做的不是在完成121秒后超时,而是在完成5分钟后超时,或者我设置的任何时间 在我看来,这个超时将在作业指示它“成功”后中止作业,这是完全倒退的。(有关这些细节,请参见我在下面日志中加粗的所有要点)。也许是虫子?还是我自己错过了其他的场景?还是微软的另一份缺席文件 应用程序服务计划正在付费服务层(B1)上运行C# 触发Web作业完全执行,然后在121秒后超时中止,c#,azure,.net-core,azure-web-app-service,azure-webjobs,C#,Azure,.net Core,Azure Web App Service,Azure Webjobs,我有一个webjob,当一个新项目添加到存储队列时,它正在Azure中成功触发 当它被触发时,我检查日志,所有编写的代码都已正确执行,但web作业仍处于“仍在执行”状态,执行121秒后它将中止 下面是触发的方法,后面是日志文件,您可以看到“开始处理内容”写入日志,“处理内容已完成”写入日志。这告诉我,一切都执行得很好,就我所知,我不需要做任何其他特殊的事情来表明这是成功执行的 因此,我认为Web作业应该如何工作,这将被认为是一个成功的执行。相反,它在仪表板中被标记为“失败”,并完全停止web作业
-
[06/24/2019 00:08:11>8a8d8d:INFO]触发器详细信息:消息ID:
086184dd-f9be-4e1d-b1e7-49707bd1a4e7,出列计数:1,插入时间:
2019年6月24日12:07:48上午+00:00
[06/24/2019 00:08:11>8a8d8d:INFO]开始处理内容[06/24/2019 00:08:15>8a8d8d:INFO]处理内容已被删除
已完成[06/24/2019 00:08:15>8a8d8d:INFO]信息:
Function.ProcessQueueMessage[0][06/24/2019 00:08:15>8a8d8d:INFO]
已执行“StorageQueueProcessor.ProcessQueueMessage”(成功, Id=f3fcd403-515a-4746-803e-fba14d2b0455)[**2019年6月24日00:12:17> 8a8d8d:错误]**命令“cmd/c”“run.cmd”“”由于没有 输出nor CPU活动持续121秒。您可以增加 SCM\u命令\u空闲\u超时应用程序设置(或WEBJOBS\u空闲\u超时,如果 是一个WebJob),如果需要。cmd/c“run.cmd”[06/24/2019 00:12:17> 8a8d8d:系统信息]状态更改为失败[2019年6月24日00:12:17> 8a8d8d:系统错误]System.AggregateException:一个或多个错误 发生。-->Kudu.Core.Infrastructure.CommandLineException:命令 “cmd/c”“run.cmd”“”已中止,因为没有输出或CPU活动 121秒。您可以增加SCM\u命令\u空闲\u超时应用程序设置 (或WEBJOBS\u IDLE\u TIMEOUT,如果这是WebJob)如果需要。cmd/c “run.cmd”位于 中的Kudu.Core.Infrastructure.IdleManager.WaitForExit(IProcess进程) C:\Kudu Files\Private\src\master\Kudu.Core\Infrastructure\IdleManager.cs:line 96 at 中的Kudu.Core.Infrastructure.ProcessExtensions.d_u13.MoveNext() C:\Kudu Files\Private\src\master\Kudu.Core\Infrastructure\ProcessExtensions.cs:line 254 ---来自引发异常的上一个位置的堆栈结束跟踪---在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()位于 System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 中的Kudu.Core.Infrastructure.Executable.d_u31.MoveNext() C:\Kudu Files\Private\src\master\Kudu.Core\Infrastructure\Executable.cs:line 255---内部异常堆栈跟踪的结束---at System.Threading.Tasks.Task.ThrowifeException(布尔值 includeTaskCanceledExceptions)位于 System.Threading.Tasks.Task1.GetResultCore(布尔值 waitCompletionNotification)位于 Kudu.Core.Infrastructure.Executable.ExecuteInternal(ITracer tracer, Func
2 onWriteOutput,Func
1 onWriteOutput,Action`1 onWriteError,String C:\Kudu中的参数,对象[]args) Files\Private\src\master\Kudu.Core\Infrastructure\Executable.cs:line 165在Kudu.Core.Jobs.BaseJobRunner.RunJobInstance(JobBase作业, IJobLogger记录器,字符串runId,字符串触发器,ITracer跟踪器,Int32 端口号)在C:\Kudu中 Files\Private\src\master\Kudu.Core\Jobs\BaseJobRunner.cs:第272行 --->(内部异常#0)ExitCode:-1,输出:命令“cmd/c”“run.cmd”“已中止,因为121没有输出或CPU活动 秒。您可以增加SCM\u命令\u空闲\u超时应用程序设置(或 WEBJOBS_IDLE_TIMEOUT(如果这是WebJob),如果需要,错误:命令 “cmd/c”“run.cmd”“”已中止,因为没有输出或CPU活动 121秒。您可以增加SCM\u命令\u空闲\u超时应用程序设置 (或WEBJOBS\u IDLE\u TIMEOUT,如果这是WebJob)如果需要。, Kudu.Core.Infrastructure.CommandLineException:命令'cmd/c “run.cmd”“已中止,因为121没有输出或CPU活动。” 秒。您可以增加SCM\u命令\u空闲\u超时应用程序设置(或 WEBJOBS\u IDLE\u TIMEOUT(如果这是WebJob),如果需要。cmd/c “run.cmd”位于 中的Kudu.Core.Infrastructure.IdleManager.WaitForExit(IProcess进程) C:\Kudu Files\Private\src\master\Kudu.Core\Infrastructure\IdleManager.cs:line 96 at 中的Kudu.Core.Infrastructure.ProcessExtensions.d_u13.MoveNext() C:\Kudu Files\Private\src\master\Kudu.Core\Infrastructure\ProcessExtensions.cs:line 254 ---来自引发异常的上一个位置的堆栈结束跟踪---在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()位于 System.Runtime.CompilerServices.TaskAwaiter.HandleNo2 onWriteError,编码,字符串 C:\Kudu中的参数,对象[]args) Files\Private\src\master\Kudu.Core\Infrastructure\Executable.cs:line 216 at Kudu.Core.Infrastructure.executureTurnexitCode(ITracer tracer,Action
public static async Task ProcessQueueMessage([QueueTrigger("myTrigger")] CloudQueueMessage message, TextWriter log) { System.Console.Out.WriteLine($"Start Processing Content"); await DoSomeWork(); System.Console.Out.WriteLine($"Processing Content Has Completed"); }