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

已部署的Blazor网站Http Post请求行为与开发环境不一致,返回405错误

已部署的Blazor网站Http Post请求行为与开发环境不一致,返回405错误

看起来你踩了开发环境正常、部署到测试服务器就出问题的典型坑,我之前处理过好几个类似的405情况,给你梳理几个最可能的排查方向:

  • IIS的WebDAV模块搞的鬼:这是最常见的原因!很多测试服务器的IIS默认开启了WebDAV模块,它会偷偷拦截POST、PUT这类请求,直接返回405。你可以在站点的web.config里添加这段配置禁用它:
<system.webServer>
  <modules runAllManagedModulesForAllRequests="false">
    <remove name="WebDAVModule" />
  </modules>
  <handlers>
    <remove name="WebDAV" />
  </handlers>
</system.webServer>
  • 路由路径不匹配:开发环境你可能是直接在根路径运行,但测试服务器如果把站点部署在虚拟目录下,你的请求路径/api/Account/Login就会指向服务器根目录,而不是你的站点虚拟目录,导致服务器找不到对应的接口,返回405(这种情况服务器会误以为你用了错误的请求方法)。你可以打开浏览器的开发者工具,看Network面板里的实际请求URL是否正确。

  • IIS请求筛选限制了POST方法:测试服务器的IIS可能配置了请求筛选规则,禁止了POST方法。你可以登录到测试服务器的IIS管理器,找到你的站点,打开“请求筛选”功能,检查HTTP方法列表里是否包含POST,如果没有就添加进去。

  • CORS配置遗漏:如果你的Blazor前端和API是分开部署的(开发环境可能用了代理隐藏了跨域问题),测试服务器上的API可能没配置允许前端域名的CORS策略,虽然CORS通常返回403,但有时候也会引发405的异常表现。你可以检查API的CORS配置是否包含测试环境的前端域名。

你可以先从禁用WebDAV开始排查,这个解决了大部分人的405问题。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 11:34:31