服务器部署后PUT API报405错误排查求助
解决IIS上PUT API返回405 (Method Not Allowed)的额外配置排查点
你已经移除了WebDAV模块,但仍遇到405错误,可以从以下几个方向排查:
彻底移除WebDAV相关配置:仅移除模块还不够,需要同时移除WebDAV处理程序。在web.config的
<system.webServer>节点下补充配置:<system.webServer> <modules runAllManagedModulesForAllRequests="false"> <remove name="WebDAVModule"/> </modules> <handlers> <remove name="WebDAV"/> </handlers> </system.webServer>检查IIS请求筛选规则:确认IIS允许PUT谓词。可以通过两种方式配置:
- 图形化操作:选中目标网站,打开「请求筛选」→切换到「HTTP谓词」标签,确认PUT在允许列表中
- 配置文件方式:在web.config中添加:
<system.webServer> <security> <requestFiltering> <verbs> <add verb="PUT" allowed="true"/> </verbs> </requestFiltering> </security> </system.webServer>验证API端点的路由与特性配置:
- 确保PUT端点正确标记了
[HttpPut]特性(ASP.NET MVC/Web API场景) - 检查路由模板是否和请求URL完全匹配,避免因路由不匹配导致的方法不允许错误
- 确保PUT端点正确标记了
检查IIS模块映射配置:
- 如果是ASP.NET Core应用,确认
AspNetCoreModuleV2模块映射包含PUT谓词 - 对于传统ASP.NET应用,确认
System.Web.Http.WebHost相关处理程序已正确注册,且支持PUT方法
- 如果是ASP.NET Core应用,确认
排查第三方拦截模块:
- 检查是否有URL重写规则、安全防护模块(如WAF)或其他自定义模块拦截了PUT请求,可临时禁用这些模块测试是否恢复正常
确认应用程序池配置:
- ASP.NET Core应用需确保应用程序池设置为「无托管代码」模式
- 传统ASP.NET应用需匹配正确的.NET Framework版本,托管模式设置合理
内容的提问来源于stack exchange,提问作者Pooja Parmar
相关产品推荐
相关产品推荐

