Visual Studio Code函数应用调试随机终止,出现致命错误HRESULT=0x80131c36
针对HRESULT=0x80131c36致命错误的排查方案
这个错误通常和.NET运行时内存问题、依赖冲突或函数宿主异常崩溃相关,以下是具体排查修复步骤:
排查内存溢出问题
函数运行时内存占用过高会触发强制终止。本地调试时可打开性能监视器跟踪进程内存使用;也可在代码关键节点添加内存日志,用GC.GetTotalMemory(true)记录内存数据,定位是否存在内存泄漏代码段。检查依赖包版本兼容性
0x80131c36错误常源于依赖版本不匹配:- 确保
Microsoft.Azure.Functions.Worker与相关扩展包(如Microsoft.Azure.Functions.Worker.Extensions.Http)版本完全一致 - 验证第三方NuGet包与当前.NET版本(如.NET 6/7/8)的兼容性,尤其注意涉及非托管代码的包,这类包易引发运行时崩溃
- 确保
启用函数宿主详细日志
本地调试时,在local.settings.json中添加以下配置,强制输出更详细的宿主日志,可能捕获终端未显示的崩溃原因:{ "Logging": { "LogLevel": { "Default": "Debug", "Microsoft.Azure.Functions.Worker": "Debug", "System": "Debug" } } }禁用Just-In-Time调试
JIT调试可能干扰错误捕获,可在项目属性中关闭:右键项目→属性→调试→取消勾选“启用Just-In-Time调试”清理本地运行环境
- 删除项目下
bin和obj目录,重新构建解决方案 - 执行
func clean命令清除Azure Functions Core Tools缓存
- 删除项目下
检查非托管代码调用
若函数中调用了C++等非托管代码,这类代码的崩溃无法被.NET的try-catch捕获,需单独排查非托管代码的内存访问、指针操作是否合法。
内容的提问来源于stack exchange,提问作者Dhanush S
相关产品推荐
相关产品推荐

