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

部署到本地IIS服务器时.NET Web API POST请求出现400错误

解决ASP.NET Core Web API部署到IIS后内部调用出现HTTP 400错误的问题

针对你遇到的部署到本地IIS后,API1调用API2出现HTTP 400错误的问题,整理几个常见的排查方向和解决方法:

  • 核对请求地址与端口配置
    部署到IIS后,API2的访问地址大概率和VS调试时不同(比如VS用https://localhost:5001,IIS可能配置成http://localhost:8080),务必确认API1中调用API2的代码里,用的是IIS实际配置的端口和地址,不要沿用调试环境的地址。同时检查URL有没有拼写错误,比如多余的斜杠、路径写错等。

  • 校验请求内容与头部
    HTTP 400错误大多和请求格式不合法有关:

    • 确认请求头的Content-Type是否正确,比如传递JSON时必须是application/json,不要写成text/plain或其他类型;
    • 检查请求体的JSON格式是否合法,比如有没有遗漏引号、逗号,VS调试时可能自动兼容一些不规范格式,但IIS部署后会严格校验;
    • 如果API2需要认证信息(比如Bearer Token),确认API1调用时是否正确携带了认证头,调试环境的认证配置可能没有同步到IIS部署环境。
  • 检查IIS站点配置

    • 确认API2的IIS站点绑定协议(HTTP/HTTPS)和API1调用时的协议一致,如果VS里用HTTPS调试,部署到IIS后要确保站点配置了有效的SSL证书,或者调整API1的调用协议和IIS绑定匹配;
    • 检查应用程序池的.NET运行时版本,必须选择.NET 6,不要误选成.NET Framework或其他版本。
  • 查看详细错误日志
    400只是笼统错误,要找具体原因必须看日志:

    • 在API2的appsettings.json中开启调试级别的日志:
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft.AspNetCore": "Debug"
        }
      }
      
    • 也可以在IIS中启用失败请求跟踪,捕获请求的详细错误信息,定位具体是参数校验失败、请求体解析错误还是其他问题。
  • 确认跨域配置(如果涉及)
    虽然是本地不同端口,但如果API2的CORS策略只允许VS调试的端口,部署后API1的IIS端口不在允许列表里,也可能引发异常(部分场景下会表现为400)。检查API2的CORS配置,确保包含API1的IIS访问地址。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 02:05:09