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

Blazor Wasm部署后出现405错误:HTTP动词不被允许

问题分析与解决

这大概率是主机的配置问题,而非Blazor应用本身的问题——毕竟本地测试一切正常,说明你的应用PUT/DELETE请求的逻辑是没问题的,部署后出现405错误,核心原因是主机的Web服务器或安全策略拦截了PUT、DELETE这两种HTTP请求方法。

下面是具体的排查和解决步骤:

  • 检查主机Web服务器的请求方法限制

    • 若使用IIS:默认可能禁用了PUT/DELETE,可通过两种方式开启:
      1. 在IIS管理器的站点“请求筛选”功能中,添加允许PUT、DELETE动词;
      2. 在项目的web.config文件里,添加请求筛选规则,示例代码如下:
        <system.webServer>
          <security>
            <requestFiltering>
              <verbs allowUnlisted="false">
                <add verb="GET" allowed="true" />
                <add verb="POST" allowed="true" />
                <add verb="PUT" allowed="true" />
                <add verb="DELETE" allowed="true" />
              </verbs>
            </requestFiltering>
          </security>
        </system.webServer>
        
    • 若使用Nginx:在站点配置的server或location块中,添加允许PUT、DELETE方法的配置:allow_methods GET POST PUT DELETE;
    • 若使用Apache:检查站点根目录的.htaccess文件,确保没有限制PUT/DELETE,或者添加规则:<Limit GET POST PUT DELETE> Allow from all </Limit>
  • 排查主机的安全插件/防火墙
    很多主机自带的安全工具会默认拦截非GET/POST的HTTP方法,你需要登录主机控制面板,找到安全防护相关的设置,将PUT、DELETE加入允许的请求方法列表。

  • 快速验证应用路由(可选)
    虽然本地正常,但可以再确认下Blazor API端点的特性是否正确:比如控制器方法上的[HttpPut]、[HttpDelete]特性有没有拼写错误,路由模板是否和前端请求的路径匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 20:25:30