You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

含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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 04:12:38