VS Code调试ASP.NET Core接口时突然退出,错误码0xc0000005如何修复?
问题描述
在VS Code中调试基于.NET 7.0的ASP.NET Core应用时,调用HttpPost接口(Create方法)时调试器突然退出,弹出错误:
程序已退出,代码为-1073741819 (0xc0000005)
接口代码如下,但调试器从未执行到内部逻辑:
[HttpPost] public async Task<IActionResult> Create(RoleCUViewModel model) { //Do Some thing }
对应的ViewModel代码:
public class RoleCUViewModel { [Required] public string? Name { get => Name; set { if (value != "Admin") { Name = value; } else Name = null; } } public string? Description { get; set; } }
已移除接口上的Authorize特性测试,问题仍未解决,求修复方案。
问题原因及修复
根本原因:
RoleCUViewModel的Name属性存在无限递归。getter里直接返回Name,会不断调用自身的getter,最终引发栈溢出,触发系统级进程崩溃(错误码0xc0000005属于访问违规,栈溢出是常见触发场景),所以调试器还没进入接口逻辑就直接崩溃了。修复方法:
给Name属性添加私有字段存储值,替换递归实现:public class RoleCUViewModel { private string? _name; [Required] public string? Name { get => _name; set { _name = value != "Admin" ? value : null; } } public string? Description { get; set; } }修改后重新启动调试,调用接口即可正常进入逻辑。
内容的提问来源于stack exchange,提问作者mamad2559
相关产品推荐
相关产品推荐

