我刚刚创建了简单的Web作业,只是将某些内容写入控制台。这个工作应该按需运行,所以当我将它发布到Azure时,我将其设置为按需运行。
当我运行它时,它工作正常,但几分钟后它失败并显示以下消息。
[2015年12月12日18:07:20> f78915:ERR]命令'cmd / c TestJob.exe'是 由于121秒没有输出或CPU活动而中止。您可以 增加SCM_COMMAND_IDLE_TIMEOUT应用程序设置(或 如果需要,WEBJOBS_IDLE_TIMEOUT(如果这是WebJob)。 cmd / c TestJob.exe [12/07/2015 18:07:20> f78915:SYS INFO]状态已更改为 失败
以下是该错误:
[2015年12月12日18:07:20> f78915:SYS ERR] System.AggregateException: 发生了一个或多个错误。 ---> Kudu.Core.Infrastructure.CommandLineException:命令'cmd / c 由于121没有输出或CPU活动,TestJob.exe'被中止 秒。您可以增加SCM_COMMAND_IDLE_TIMEOUT应用程序设置(或 如果需要,WEBJOBS_IDLE_TIMEOUT(如果这是WebJob)。 cmd / c TestJob.exe在 Kudu.Core.Infrastructure.IdleManager.WaitForExit(IProcess process)
在Kudu.Core.Infrastructure.ProcessExtensions.d__a.MoveNext() ---从抛出异常的先前位置开始的堆栈跟踪结束--- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务) Kudu.Core.Infrastructure.Executable.d__1d.MoveNext()
---内部异常堆栈跟踪结束---在System.Threading.Tasks.Task.ThrowIfExceptional(布尔值 includeTaskCanceledExceptions)at System.Threading.Tasks.Task1.GetResultCore(Boolean waitCompletionNotification) at System.Threading.Tasks.Task
1.get_Result()at Kudu.Core.Infrastructure.Executable.ExecuteInternal(ITracer tracer, Func2 onWriteOutput, Func
2 onWriteError,Encoding encoding,String arguments,Object [] args)at Kudu.Core.Infrastructure.Executable.ExecuteReturnExitCode(的ITracer tracer,Action1 onWriteOutput, Action
1 onWriteError,String arguments,Object [] args)at Kudu.Core.Jobs.BaseJobRunner.RunJobInstance(JobBase job,IJobLogger) logger,String runId,String trigger,Int32 port) ---> (内部异常#0)ExitCode:-1,输出:命令'cmd / c TestJob.exe'因121没有输出或CPU活动而中止 秒。您可以增加SCM_COMMAND_IDLE_TIMEOUT应用程序设置(或 如果需要,WEBJOBS_IDLE_TIMEOUT(如果这是WebJob)。,错误:命令 由于没有输出或CPU活动,'cmd / c TestJob.exe'被中止 121秒您可以增加SCM_COMMAND_IDLE_TIMEOUT应用程序设置 (如果需要,可以是WEBJOBS_IDLE_TIMEOUT,如果是WebJob), Kudu.Core.Infrastructure.CommandLineException:命令'cmd / c 由于121没有输出或CPU活动,TestJob.exe'被中止 秒。您可以增加SCM_COMMAND_IDLE_TIMEOUT应用程序设置(或 如果需要,WEBJOBS_IDLE_TIMEOUT(如果这是WebJob)。 cmd / c TestJob.exe在 Kudu.Core.Infrastructure.IdleManager.WaitForExit(IProcess process)
在Kudu.Core.Infrastructure.ProcessExtensions.d__a.MoveNext() ---从抛出异常的先前位置开始的堆栈跟踪结束--- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务) Kudu.Core.Infrastructure.Executable.d__1d.MoveNext()< ---
以下是此网络作业的完整代码。
static void Main()
{
var host = new JobHost();
Console.Out.WriteLine("Testing the test job...");
host.RunAndBlock();
}
我明白它失败了,因为没有活动,但它应该是按需运行的工作。我在哪里弄错了?
答案 0 :(得分:5)
它是按需运行的工作与错误无关。当你告诉它时,这只是一份工作。
一段时间内没有做任何事情的工作(根据你得到的东西,121秒)将中止。