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

部署至本地IIS的ASP.NET API(.NET8)PUT/DELETE请求CORS错误求助

针对ASP.NET Core (.NET 8)部署IIS后PUT/DELETE请求CORS问题的排查方案

以下是针对你遇到问题的具体排查和解决步骤:

  • 检查IIS是否允许PUT/DELETE动词
    默认IIS可能拦截PUT和DELETE请求,导致请求根本无法到达ASP.NET Core应用。可以通过两种方式处理:

    1. 图形界面配置:打开IIS管理器,找到目标站点 → 点击「处理程序映射」→ 找到「AspNetCoreModuleV2」(对应.NET 8),右键选择「编辑请求限制」→ 在「动词」选项卡选择「全部动词」,或手动添加PUT、DELETE。
    2. web.config配置:直接在站点的web.config中确保ASP.NET Core模块允许所有动词:
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
    </system.webServer>
    
  • 处理OPTIONS预检请求转发问题
    PUT/DELETE属于非简单请求,浏览器会先发OPTIONS预检请求。IIS可能直接处理该请求而不转发到你的应用,导致CORS头缺失。可以在web.config中添加以下配置:

    <system.webServer>
      <modules runAllManagedModulesForAllRequests="false">
        <remove name="WebDAVModule" /> <!-- WebDAV模块常干扰PUT/DELETE请求 -->
      </modules>
      <handlers>
        <remove name="WebDAV" />
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <httpProtocol>
        <customHeaders>
          <remove name="Access-Control-Allow-Origin" /> <!-- 避免IIS和应用重复设置头 -->
        </customHeaders>
      </httpProtocol>
    </system.webServer>
    
  • 确认CORS中间件的注册顺序
    你的CORS规则本身没问题,但必须保证中间件顺序正确——UseCors必须放在UseRouting之后、UseAuthorization之前:

    var builder = WebApplication.CreateBuilder(args);
    
    builder.Services.AddCors();
    builder.Services.AddControllers();
    
    var app = builder.Build();
    
    app.UseRouting();
    
    app.UseCors(x => x
      .AllowAnyHeader()
      .AllowAnyMethod()
      .SetIsOriginAllowed(origin => true)
      .AllowCredentials());
    
    app.UseAuthorization();
    
    app.MapControllers();
    
    app.Run();
    

    顺序错误会导致授权中间件提前拦截请求,CORS头无法正常添加。

  • 排查IIS其他模块干扰
    暂时禁用站点的URL Rewrite、Compression等模块,测试是否恢复正常。这些模块可能修改请求或响应头,导致CORS规则失效。

内容的提问来源于stack exchange,提问作者Bruno Gonzalez Torres

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 02:25:11