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

已配置IIS CORS允许所有方法,但DELETE请求仍遭405拦截求助

排查IIS部署后DELETE请求405错误的方案

1. 禁用IIS的WebDAV模块

WebDAV默认会拦截DELETE、PUT这类请求,是导致405错误的高频原因:

  • 打开IIS管理器,找到目标站点,进入模块功能
  • 找到WebDAVModule,右键选择移除
  • 也可以直接在web.config中添加配置禁用:
<system.webServer>
  <modules>
    <remove name="WebDAVModule" />
  </modules>
  <handlers>
    <remove name="WebDAV" />
  </handlers>
</system.webServer>

2. 检查WebAPI路由与请求URL匹配

你的DELETE请求末尾携带邮箱(例如/api/users/NewReq@NewReq.com),需确认:

  • WebAPI的Action路由是否正确定义,示例:
[HttpDelete("api/users/{email}")]
public IActionResult DeleteUser(string email)
{
    // 业务处理逻辑
}
  • 确认请求URL中的@符号是否被正确编码(前端发送时应自动转为%40,未编码可能导致路由解析失败)

3. 验证IIS CORS模块配置完整性

确保web.config中的CORS配置覆盖必要规则,示例:

<system.webServer>
  <cors enabled="true">
    <add origin="*" allowCredentials="true">
      <allowHeaders header="*" />
      <allowMethods method="GET,HEAD,POST,PUT,DELETE" />
    </add>
  </cors>
</system.webServer>

注意:若应用需要携带凭证(如Cookie),allowCredentials需设为true,此时origin不能用*,需指定具体域名;但你当前GET/POST正常,这大概率不是核心问题,可作为补充排查点。

4. 检查WebAPI Action的HTTP方法标记

确认后端处理DELETE请求的Action是否正确标记了[HttpDelete]特性,避免误写为[HttpPost]或其他方法;同时检查参数绑定逻辑,确保邮箱参数能被正确解析。

5. 排查IIS权限与请求筛选

  • 确认应用池身份拥有执行DELETE操作所需的权限(如数据库操作、文件读写权限)
  • 进入站点的请求筛选功能,点击HTTP方法,确认DELETE在允许列表中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 23:15:34