含IFormFile的ViewModel提交时程序崩溃,求排查解决
问题描述
- 自定义了包含
IFormFile类型字段的CreateNovelViewModel - 提交Create表单的POST请求时程序直接崩溃,调试断点无法命中
- 程序退出码为
4294967295 - 已尝试过的无效方案:更换端口、删除
applicationhost.config、更新VS2022、上传小文件、增大文件上传限制
排查与解决步骤
检查表单与视图模型的匹配性
确保Create.cshtml的表单添加了enctype="multipart/form-data"属性,且文件上传控件的name值和CreateNovelViewModel中IFormFile字段的名称完全一致(大小写敏感)。启用详细日志定位崩溃点
在Program.cs中添加详细日志配置,运行时查看VS的Output面板,获取崩溃前的异常信息:builder.Logging.AddDebug(); builder.Logging.SetMinimumLevel(LogLevel.Trace);简化控制器POST方法排查绑定问题
临时剥离业务逻辑,只保留基础的模型绑定和日志输出,验证文件是否能正常接收:[HttpPost] public IActionResult Create([FromForm] CreateNovelViewModel model) { Console.WriteLine("Model received"); if (model.CoverImage != null) { Console.WriteLine($"File: {model.CoverImage.FileName}, Size: {model.CoverImage.Length}"); } return RedirectToAction(nameof(Index)); }同时确保方法参数添加了
[FromForm]特性,明确指定绑定来源。通过事件查看器获取崩溃堆栈
打开Windows事件查看器,进入Windows日志 -> 应用程序,查找对应崩溃事件,里面的异常堆栈信息可以精准定位问题根源。创建极简测试项目验证环境
新建一个空白ASP.NET Core项目,仅实现带IFormFile的视图模型、基础控制器和表单,测试文件上传功能是否正常,排除原项目配置冲突的可能。
内容的提问来源于stack exchange,提问作者pilog
相关产品推荐
相关产品推荐

