Azure functions azure函数抛出System.OperationCanceledException

Azure functions azure函数抛出System.OperationCanceledException,azure-functions,azure-application-insights,Azure Functions,Azure Application Insights,我的项目正在使用Azure功能将数据发送到AWS SNS。然而,有一个例外,大约每天扔掉1次。我们每天处理400000个数据。这是否意味着运行超过5分钟的函数和azure函数取消了该线程,或者是因为其他原因?我们使用application insight监控Azure功能 "System.Threading.CancellationToken.ThrowOperationCanceledException". 错误日志: System.OperationCanceledException:

我的项目正在使用Azure功能将数据发送到AWS SNS。然而,有一个例外,大约每天扔掉1次。我们每天处理400000个数据。这是否意味着运行超过5分钟的函数和azure函数取消了该线程,或者是因为其他原因?我们使用application insight监控Azure功能

"System.Threading.CancellationToken.ThrowOperationCanceledException". 
错误日志:

System.OperationCanceledException:
   at System.Threading.CancellationToken.ThrowOperationCanceledException (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at Microsoft.Azure.WebJobs.ServiceBus.Listeners.NamespaceManagerExtensions+<CreateSubscriptionIfNotExistsAsync>d__4.MoveNext (Microsoft.Azure.WebJobs.ServiceBus, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at Microsoft.Azure.WebJobs.ServiceBus.Listeners.ServiceBusSubscriptionListenerFactory+<CreateAsync>d__8.MoveNext (Microsoft.Azure.WebJobs.ServiceBus, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexer+ListenerFactory+<CreateAsync>d__5.MoveNext (Microsoft.Azure.WebJobs.Host, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at Microsoft.Azure.WebJobs.Host.Listeners.HostListenerFactory+<CreateAsync>d__10.MoveNext (Microsoft.Azure.WebJobs.Host, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at Microsoft.Azure.WebJobs.Host.Listeners.ListenerFactoryListener+<StartAsyncCore>d__8.MoveNext (Microsoft.Azure.WebJobs.Host, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at Microsoft.Azure.WebJobs.Host.Listeners.ShutdownListener+<StartAsync>d__5.MoveNext (Microsoft.Azure.WebJobs.Host, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at Microsoft.Azure.WebJobs.JobHost+<StartAsyncCore>d__25.MoveNext (Microsoft.Azure.WebJobs.Host, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at Microsoft.Azure.WebJobs.Script.ScriptHostManager.RunAndBlock (Microsoft.Azure.WebJobs.Script, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Host\ScriptHostManager.cs: 184)
System.operation取消异常:
在System.Threading.CancellationToken.ThrowoOperationCanceledException(mscorlib,版本=4.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089)
位于Microsoft.Azure.WebJobs.ServiceBus.Listeners.NamespaceManagerExtensions+d_u4.MoveNext(Microsoft.Azure.WebJobs.ServiceBus,版本=2.1.0.0,区域性=中性,PublicKeyToken=31bf3856ad364e35)
在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(mscorlib,版本=4.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089)
在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(mscorlib,版本=4.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089)
位于Microsoft.Azure.WebJobs.ServiceBus.Listeners.ServiceBusSubscriptionListenerFactory+d_u8.MoveNext(Microsoft.Azure.WebJobs.ServiceBus,版本=2.1.0.0,区域性=中性,PublicKeyToken=31bf3856ad364e35)
在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(mscorlib,版本=4.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089)
在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(mscorlib,版本=4.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089)
在Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexer+ListenerFactory+d_u5.MoveNext(Microsoft.Azure.WebJobs.Host,版本=2.1.0.0,区域性=中性,PublicKeyToken=31bf3856ad364e35)
在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(mscorlib,版本=4.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089)
在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(mscorlib,版本=4.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089)
位于Microsoft.Azure.WebJobs.Host.Listeners.HostListenerFactory+d_u10.MoveNext(Microsoft.Azure.WebJobs.Host,版本=2.1.0.0,区域性=中性,PublicKeyToken=31bf3856ad364e35)
在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(mscorlib,版本=4.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089)
在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(mscorlib,版本=4.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089)
位于Microsoft.Azure.WebJobs.Host.Listeners.ListenerFactoryListener+d_u8.MoveNext(Microsoft.Azure.WebJobs.Host,版本=2.1.0.0,区域性=中性,PublicKeyToken=31bf3856ad364e35)
在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(mscorlib,版本=4.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089)
在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(mscorlib,版本=4.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089)
位于Microsoft.Azure.WebJobs.Host.Listeners.ShutdownListener+d_u5.MoveNext(Microsoft.Azure.WebJobs.Host,版本=2.1.0.0,区域性=中性,PublicKeyToken=31bf3856ad364e35)
在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(mscorlib,版本=4.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089)
在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(mscorlib,版本=4.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089)
在Microsoft.Azure.WebJobs.JobHost+d_u25.MoveNext(Microsoft.Azure.WebJobs.Host,版本=2.1.0.0,区域性=中立,PublicKeyToken=31bf3856ad364e35)
在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(mscorlib,版本=4.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089)
在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(mscorlib,版本=4.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089)
位于Microsoft.Azure.WebJobs.Script.ScriptHostManager.RunAndBlock(Microsoft.Azure.WebJobs.Script,版本=1.0.0.0,区域性=中性,PublicKeyToken=null:C:\projects\Azure WebJobs sdk Script\src\WebJobs.Script\Host\ScriptHostManager.cs:184)

否。如果函数执行时间超过5分钟,您将得到一个
FunctionTimeoutException
。如果需要,消费计划中的Azure功能可以扩展到运行10分钟

这种类型的错误-
System.Threading.CancellationToken.throwoOperationCanceledException
-通常意味着您在代码中调用的服务花费的时间超过了定义的超时时间。超时已过,线程被终止

您很可能正在使用该库与AWS SNS进行通信?下面是aws sdk.net团队从他们的库中冒出的这类错误


因此,您看到的错误可能来自他们的代码。SNS超时了。这取决于该库如何优雅地处理它。

您还有更多的堆栈跟踪吗?”因为这种异常可能来自任何地方。函数超时应为您提供FunctionTimeoutException()。您确实需要调用堆栈来获得更多上下文。例如,可能您的函数正在调用一个texternal服务(AWS),而该服务的超时次数为400000次中的1次。我在C#服务中得到了相同的OperationCanceledException。它是在内部处理的(不是在我的代码中冒泡),但我在调试窗口中注意到它,在诊断工具窗口中注意到红色标记事件,同时在调试器中运行。对于我来说,它们经常出现,可能每个消息一个。我见过ServiceBustigger,它应该在函数完成执行时自动完成服务总线队列中的消息,但最终抛出OperationCanceledException。而且,它是以一种不易被人发现的方式进行的