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