我有一个在azure上运行的连续webjob,在8小时前进行了更大的部署后,它的状态在某些情况下从未完成,在其他情况下已完成该作业。
我已经启用了所有可以找到的日志记录,并且花了相当多的时间试图找出问题所在。
[2017年11月15日14:46:23>e553e5:ERR]未处理的异常:Microsoft。WindowsAzure。存储StorageException:远程服务器返回错误:(404)未找到---&燃气轮机;系统网WebException:远程服务器返回错误:(404)未找到。
[2017年11月15日14:46:23>e553e5:ERR]微软。WindowsAzure。存储共享。协议httpresponseparasers。ProcessExpectedStatusCodeNoException[T](HttpStatusCode expectedStatusCode,HttpStatusCode actualStatusCode,T retVal,StorageCommandBase
1 cmd, Exception ex) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\Common\Shared\Protocol\HttpResponseParsers.Common.cs:line 50
[11/15/2017 14:46:23 > e553e5: ERR ] at Microsoft.WindowsAzure.Storage.Blob.CloudBlob.<DeleteBlobImpl>b__33(RESTCommand
1 cmd,HttpWebResponse resp,Exception ex,OperationContext ctx),c:\Program Files(x86)\Jenkins\workspace\release\u dotnet\u master\Lib\ClassLibraryCommon\Blob\CloudBlob。cs:3349行
[2017年11月15日14:46:23>e553e5:ERR]微软。WindowsAzure。存储果心遗嘱执行人。遗嘱执行人。c:\Program Files(x86)\Jenkins\workspace\release\u dotnet\u master\Lib\ClassLibraryCommon\Core\Executor\Executor中的EndGetResponse[T](IAsyncResult getResponseResult)。cs:299行
[2017年11月15日14:46:23>e553e5:ERR]--内部异常堆栈跟踪结束---
[2017年11月15日14:46:23>e553e5:ERR]微软。WindowsAzure。存储果心遗嘱执行人。遗嘱执行人。EndExecuteAsync[T](IAsyncResult结果)在c:\Program Files(x86)\Jenkins\workspace\release\u dotnet\u master\Lib\ClassLibraryCommon\Core\Executor\Executor中。cs:50号线
[2017年11月15日14:46:23>e553e5:ERR]微软。WindowsAzure。存储水滴。CloudBlob。c:\Program Files(x86)\Jenkins\workspace\release\u dotnet\u master\Lib\ClassLibraryCommon\Blob\CloudBlob中的EndDelete(IAsyncResult asyncResult)。cs:1729号线
[2017年11月15日14:46:23>e553e5:ERR]微软。WindowsAzure。存储果心Util。异步扩展<&燃气轮机;c__DisplayClass4。c:\Program Files(x86)\Jenkins\workspace\release\u dotnet\u master\Lib\ClassLibraryCommon\Core\Util\AsyncExtensions中的b\u 3(IAsyncResult ar)。cs:114号线
[2017年11月15日14:46:23>e553e5:ERR]--来自引发异常的前一个位置的堆栈结束跟踪---
[2017年11月15日14:46:23>e553e5:ERR]at系统。运行时。编译器服务。任务等待者。ThrowForNonSuccess(任务任务)
[2017年11月15日14:46:23>e553e5:ERR]at系统。运行时。编译器服务。任务等待者。HandleNonSuccessAndDebuggerNotification(任务任务)
[2017年11月15日14:46:23>e553e5:ERR]微软。蔚蓝色的网络作业。主办协议。PersistentQueueWriter
1.<DeleteAsync>d__6.MoveNext()
[11/15/2017 14:46:23 > e553e5: ERR ] --- End of stack trace from previous location where exception was thrown ---
[11/15/2017 14:46:23 > e553e5: ERR ] at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
[11/15/2017 14:46:23 > e553e5: ERR ] at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
[11/15/2017 14:46:23 > e553e5: ERR ] at Microsoft.Azure.WebJobs.Host.Loggers.CompositeFunctionInstanceLogger.<DeleteLogFunctionStartedAsync>d__e.MoveNext()
[11/15/2017 14:46:23 > e553e5: ERR ] --- End of stack trace from previous location where exception was thrown ---
[11/15/2017 14:46:23 > e553e5: ERR ] at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
[11/15/2017 14:46:23 > e553e5: ERR ] at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
[11/15/2017 14:46:23 > e553e5: ERR ] at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.<TryExecuteAsync>d__1.MoveNext()
[11/15/2017 14:46:23 > e553e5: ERR ] --- End of stack trace from previous location where exception was thrown ---
[11/15/2017 14:46:23 > e553e5: ERR ] at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
[11/15/2017 14:46:23 > e553e5: ERR ] at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
[11/15/2017 14:46:23 > e553e5: ERR ] at Microsoft.Azure.WebJobs.Host.Executors.TriggeredFunctionExecutor
1.d__0。MoveNext()
[2017年11月15日14:46:23>e553e5:ERR]--来自引发异常的前一个位置的堆栈结束跟踪---
[2017年11月15日14:46:23>e553e5:ERR]微软。蔚蓝色的网络作业。主办计时器。背景ExceptionDispatcher<&燃气轮机;c_DisplayClass1。b__0()
[2017年11月15日14:46:23>e553e5:ERR]at系统。穿线。ThreadHelper。ThreadStart\u上下文(对象状态)
[2017年11月15日14:46:23>e553e5:ERR]at系统。穿线。ExecutionContext。运行(ExecutionContext ExecutionContext、ContextCallback回调、对象状态、Boolean preserveSyncCtx)
[2017年11月15日14:46:23>e553e5:ERR]at系统。穿线。ExecutionContext。运行(ExecutionContext ExecutionContext、ContextCallback回调、对象状态)
[2017年11月15日14:46:23>e553e5:ERR]at系统。穿线。ThreadHelper。ThreadStart()
谁能给我一些关于如何调试这个的想法,因为我没有想法了。
我的webjobs main如下所示:
static void Main()
{
var host = new JobHost();
var config = new JobHostConfiguration();
config.Queues.MaxPollingInterval = new TimeSpan(0,0,0,30);
config.Queues.MaxDequeueCount = 3;
// The following code ensures that the WebJob will be running continuously
host.RunAndBlock();
}
processqueuemessage如下所示:
public static void ProcessQueueMessage([QueueTrigger("importqueue")] string msg)
{
try
{
WorkerWebJobCore wwjc = new WorkerWebJobCore();
wwjc.RunCore(msg, TableStorageAccessResources.ImportQueue,
TableStorageAccessResources.TableStorageDataOneId,
TableStorageAccessResources.TableStorageDataOnePassword);
}
catch (Exception e)
{
CommunicatorLog.Log.LogError("WebJobWorker","WebJobWorker","Error in processing queue message","ERRWJWF01");
}
}
所以我对每件事都有一个陷阱,所以我不明白它怎么会失败?
提前谢谢。