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

ASP.NET Core WebAPI部署IIS后PUT请求返回500错误如何解决

IIS部署后PUT请求返回500错误解决方案

核心原因大概率是IIS默认启用的WebDAV模块优先级高于你配置的请求过滤规则,会主动拦截PUT、PATCH、DELETE等RESTful常用谓词,你已经在请求过滤中放开了PUT权限,只需要补充WebDAV相关的移除配置即可:

将以下配置添加到你的web.config的<system.webServer>节点下:

<modules>
  <remove name="WebDAVModule" />
</modules>
<handlers>
  <remove name="WebDAV" />
  <!-- 如果你用的是其他版本的.NET运行时,调整对应的handler名称和runtimeVersion参数即可 -->
  <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
  <add name="ExtensionlessUrlHandler-Integrated-4.0" 
       path="*." 
       verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" 
       type="System.Web.Handlers.TransferRequestHandler" 
       preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>

其他排查建议

  • 确认测试服务器的.NET运行时版本、应用程序池托管模式和本地开发环境完全一致,避免框架差异导致的隐性报错
  • 临时开启IIS站点的详细错误输出,可直接查看500错误的具体堆栈信息,快速定位根因
  • 你的示例代码中接口标记了async,如果实际业务中UpdateUser是异步方法,需要添加await关键字,否则异步上下文错误也可能导致部署后出现500错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:24:04