C# azure webjob已停止,出现未处理的异常:503服务器不可用
我有一个带有QueueTrigger的web作业。我用try&catch包装了process函数,但azure队列似乎抛出了一个未经处理的异常,我无法在代码中捕获该异常。 如何自动重新启动webjob? 如何将重试策略添加到webjob sdk 这是我在webjob日志中看到的异常(显示错误发生在webjob sdk计时器中):C# azure webjob已停止,出现未处理的异常:503服务器不可用,c#,azure,azure-webjobs,C#,Azure,Azure Webjobs,我有一个带有QueueTrigger的web作业。我用try&catch包装了process函数,但azure队列似乎抛出了一个未经处理的异常,我无法在代码中捕获该异常。 如何自动重新启动webjob? 如何将重试策略添加到webjob sdk 这是我在webjob日志中看到的异常(显示错误发生在webjob sdk计时器中): 正如您所确定的,存储异常发生在您的作业功能之外,因此您无法捕获它。但是,webjobs SDK将根据自己的内部随机指数退避策略自动处理失败并重试失败的调用。您可以在启动
正如您所确定的,存储异常发生在您的作业功能之外,因此您无法捕获它。但是,webjobs SDK将根据自己的内部随机指数退避策略自动处理失败并重试失败的调用。您可以在启动时控制设置JobHostConfiguration.Queues.MaxDequeueCount的重试次数。此故障是否一致?是的,但偶尔会发生。我将web作业更改为连续运行,因此现在web不会停止。
04/18/2015 11:10:52 > 2d2f34: ERR ]
[04/18/2015 11:10:52 > 2d2f34: ERR ] Unhandled Exception: Microsoft.WindowsAzure.Storage.StorageException: The remote server returned an error: (503) Server Unavailable. ---> System.Net.WebException: The remote server returned an error: (503) Server Unavailable.
[04/18/2015 11:10:52 > 2d2f34: ERR ] at Microsoft.WindowsAzure.Storage.Shared.Protocol.HttpResponseParsers.ProcessExpectedStatusCodeNoException[T](HttpStatusCode expectedStatusCode, HttpStatusCode actualStatusCode, T retVal, StorageCommandBase`1 cmd, Exception ex)
[04/18/2015 11:10:52 > 2d2f34: ERR ] at Microsoft.WindowsAzure.Storage.Queue.CloudQueue.<ExistsImpl>b__1d(RESTCommand`1 cmd, HttpWebResponse resp, Exception ex, OperationContext ctx)
[04/18/2015 11:10:52 > 2d2f34: ERR ] at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.EndGetResponse[T](IAsyncResult getResponseResult)
[04/18/2015 11:10:52 > 2d2f34: ERR ] --- End of inner exception stack trace ---
[04/18/2015 11:10:52 > 2d2f34: ERR ] at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.EndExecuteAsync[T](IAsyncResult result)
[04/18/2015 11:10:52 > 2d2f34: ERR ] at Microsoft.WindowsAzure.Storage.Queue.CloudQueue.EndExists(IAsyncResult asyncResult)
[04/18/2015 11:10:52 > 2d2f34: ERR ] at Microsoft.WindowsAzure.Storage.Core.Util.AsyncExtensions.<>c__DisplayClass1`1.<CreateCallback>b__0(IAsyncResult ar)
[04/18/2015 11:10:52 > 2d2f34: ERR ] --- End of stack trace from previous location where exception was thrown ---
[04/18/2015 11:10:52 > 2d2f34: ERR ] at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
[04/18/2015 11:10:52 > 2d2f34: ERR ] at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
[04/18/2015 11:10:52 > 2d2f34: ERR ] at Microsoft.Azure.WebJobs.Host.Queues.Listeners.QueueListener.<ExecuteAsync>d__4.MoveNext()
[04/18/2015 11:10:52 > 2d2f34: ERR ] --- End of stack trace from previous location where exception was thrown ---
[04/18/2015 11:10:52 > 2d2f34: ERR ] at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
[04/18/2015 11:10:52 > 2d2f34: ERR ] at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
[04/18/2015 11:10:52 > 2d2f34: ERR ] at Microsoft.Azure.WebJobs.Host.Timers.TaskSeriesTimer.<RunAsync>d__d.MoveNext()
[04/18/2015 11:10:52 > 2d2f34: ERR ] --- End of stack trace from previous location where exception was thrown ---
[04/18/2015 11:10:52 > 2d2f34: ERR ] at Microsoft.Azure.WebJobs.Host.Timers.BackgroundExceptionDispatcher.<>c__DisplayClass1.<Throw>b__0()
[04/18/2015 11:10:52 > 2d2f34: ERR ] at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
[04/18/2015 11:10:52 > 2d2f34: ERR ] at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
[04/18/2015 11:10:52 > 2d2f34: ERR ] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
[04/18/2015 11:10:52 > 2d2f34: ERR ] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
[04/18/2015 11:10:52 > 2d2f34: ERR ] at System.Threading.ThreadHelper.ThreadStart()
[04/18/2015 11:10:52 > 2d2f34: SYS INFO] Status changed to Failed
[04/18/2015 11:10:52 > 2d2f34: SYS ERR ] Job failed due to exit code -532462766
public static async Task ManualTrigger([QueueTrigger(ConstantVars.TargetjobQueue)] TargetingJob job, TextWriter log)
{
try
{
AddTextWriterToAppender(log);
_logger.DebugFormat("Starting job");
_logger.DebugFormat("Job details: {0}", job);
await ProcessJob(job).ConfigureAwait(false);
_logger.Debug("Finished job");
RemoveTextWriterFromAppender();
}
catch (Exception e)
{
_logger.Error(string.Format("Unhandled exception was caught in ManualTrigger.\n jobParams={0}",job.ToString()),e);
}
}