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

ASP.NET Core 5 Web API报400错误是否与两项目访问同一数据库有关

解答

你的猜测不成立。请求未进入接口逻辑就返回400,说明报错发生在ASP.NET Core解析请求的前置阶段,还没有执行到访问数据库的代码,和你运行过其他项目访问同数据库无关。

该错误是表单数据解析失败触发的,可按以下步骤排查解决:

  1. 调整请求大小限制
    ASP.NET Core默认表单提交大小限制为4MB,若上传的图片超过该阈值就会触发解析错误。可以直接在接口上添加特性调整限制:
[HttpPut("{id}")]
// 示例为设置100MB限制,可按需调整大小
[RequestSizeLimit(100 * 1024 * 1024)]
[RequestFormLimits(MultipartBodyLengthLimit = 100 * 1024 * 1024)]
public async Task<ActionResult<HomeContextModel>> EditHomeContext(int id, string title, string context, string subcontext, IFormFile imageFile)

也可以全局配置,在Startup.cs的ConfigureServices方法中添加:

services.Configure<FormOptions>(options =>
{
    options.MultipartBodyLengthLimit = 100 * 1024 * 1024;
});
  1. 排查PUT请求解析问题
    部分.NET Core版本对PUT类型的multipart/form-data请求存在解析bug,你可以临时将接口请求类型改为POST测试,如果POST请求正常,可选择改接口请求方式,或者升级ASP.NET Core运行时到最新小版本修复该问题。
  2. 本地测试排除隧道影响
    你代码中使用了conveyor.cloud穿透隧道,这类工具普遍存在上传大小限制,网络不稳定时还会截断请求导致表单不完整。你可以直接用localhost本地地址测试,不走隧道,如果本地测试正常,说明是隧道的问题,演示时直接用本地服务即可,或者更换支持大文件上传的穿透工具。
  3. 检查Swagger测试参数
    用Swagger测试时要确保所有必填参数都填写完整,上传的文件没有损坏,不要在上传过程中中断操作,避免提交的表单数据不完整。

内容的提问来源于stack exchange,提问作者jackshooter

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:24:06