如何获取Azure Function部署时Microsoft.Azure.WebJobs空引用错误的具体细节
Azure Functions部署Sequelize依赖时的空引用异常排查问题
我通过Azure DevOps CI/CD以压缩包方式部署Azure Function,代码通常能成功部署,但引入npm依赖Sequelize后,应用启动会触发空引用错误,界面报错如下:
关于Azure Function的配置详情,可参考StackOverflow上的相关问题。
两次依赖导入失败的案例中,仅当导入Sequelize类时会触发函数故障,且故障重现存在随机性(怀疑和浏览器缓存有关)。Application Insights提供的堆栈跟踪如下:
System.NullReferenceException: at Microsoft.Azure.WebJobs.Script.WorkerFunctionMetadataProvider+<GetFunctionMetadataAsync>d__10.MoveNext (Microsoft.Azure.WebJobs.Script, Version=4.23.0.0, Culture=neutral, PublicKeyToken=null: /_/src/WebJobs.Script/Host/WorkerFunctionMetadataProvider.cs:83) at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at Microsoft.Azure.WebJobs.Script.WebHost.FunctionMetadataProvider+<GetFunctionMetadataAsync>d__10.MoveNext (Microsoft.Azure.WebJobs.Script, Version=4.23.0.0, Culture=neutral, PublicKeyToken=null: /_/src/WebJobs.Script/Host/FunctionMetadataProvider.cs:45) at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at Microsoft.Azure.WebJobs.Script.FunctionMetadataManager.LoadFunctionMetadata (Microsoft.Azure.WebJobs.Script, Version=4.23.0.0, Culture=neutral, PublicKeyToken=null: /_/src/WebJobs.Script/Host/FunctionMetadataManager.cs:145) at Microsoft.Azure.WebJobs.Script.FunctionMetadataManager.GetFunctionMetadata (Microsoft.Azure.WebJobs.Script, Version=4.23.0.0, Culture=neutral, PublicKeyToken=null: /_/src/WebJobs.Script/Host/FunctionMetadataManager.cs:89) at Microsoft.Azure.WebJobs.Script.ScriptHost.GetFunctionsMetadata (Microsoft.Azure.WebJobs.Script, Version=4.23.0.0, Culture=neutral, PublicKeyToken=null: /_/src/WebJobs.Script/Host/ScriptHost.cs:372) at Microsoft.Azure.WebJobs.Script.ScriptHost+<InitializeAsync>d__93.MoveNext (Microsoft.Azure.WebJobs.Script, Version=4.23.0.0, Culture=neutral, PublicKeyToken=null: /_/src/WebJobs.Script/Host/ScriptHost.cs:279) at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.Runtime.CompilerServices.TaskAwaiter.GetResult (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at Microsoft.Azure.WebJobs.Script.ScriptHost+<StartAsyncCore>d__92.MoveNext (Microsoft.Azure.WebJobs.Script, Version=4.23.0.0, Culture=neutral, PublicKeyToken=null: /_/src/WebJobs.Script/Host/ScriptHost.cs:256) at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at Microsoft.Extensions.Hosting.Internal.Host+<StartAsync>d__12.MoveNext (Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60) at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.Runtime.CompilerServices.TaskAwaiter.GetResult (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at Microsoft.Azure.WebJobs.Script.WebHost.WebJobsScriptHostService+<UnsynchronizedStartHostAsync>d__52.MoveNext (Microsoft.Azure.WebJobs.Script.WebHost, Version=4.23.0.0, Culture=neutral, PublicKeyToken=null: /_/src/WebJobs.Script.WebHost/WebJobsScriptHostService.cs:328)
由于故障重现存在随机性,且无法得知具体哪个变量/属性为空,目前排查陷入僵局,请问如何获取该空引用的具体细节?
内容的提问来源于stack exchange,提问作者Aiden Dipple
相关产品推荐
相关产品推荐

