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

ASP.NET Framework API部署IIS后报405错误:不支持GET请求

解决ASP.NET Framework API部署IIS后提示不支持GET方法的问题
  • 确认请求的HTTP方法与URL正确性
    虽然本地测试正常,但部署到服务器后需再次确认:Postman中请求的HTTP方法为POST,请求URL与路由api/ebonyiproxy/validateexpectedpaymentref完全匹配(注意IIS默认区分URL大小写,本地环境可能不区分)。

  • 检查IIS应用程序池与模块配置

    • 确保应用程序池的.NET Framework版本和项目目标版本一致,避免版本不兼容导致路由解析异常。
    • 进入IIS管理器的应用程序处理程序映射,找到ExtensionlessUrlHandler-Integrated-4.0,右键选择「编辑功能权限」,确认POST权限已勾选。
    • 移除WebDAV模块:该模块可能拦截POST请求,在Web.config的<modules>节点中添加<remove name="WebDAVModule" />,同时在<handlers>节点中移除对应的WebDAV handler。
  • 验证Web.config的路由与处理配置
    确保Web.config中Web API的处理规则正确,示例配置如下:

    <system.web>
      <compilation targetFramework="你的项目.NET版本" />
      <httpRuntime targetFramework="你的项目.NET版本" />
    </system.web>
    <system.webServer>
      <modules runAllManagedModulesForAllRequests="true">
        <remove name="WebDAVModule" />
      </modules>
      <handlers>
        <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
        <remove name="OPTIONSVerbHandler" />
        <remove name="TRACEVerbHandler" />
        <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
      </handlers>
      <validation validateIntegratedModeConfiguration="false" />
    </system.webServer>
    

    该配置确保无扩展名的URL能被ASP.NET正确处理,且允许所有HTTP方法。

  • 排查URL重写规则干扰
    若服务器配置了URL重写规则,检查是否存在将POST请求转为GET,或对API路由的错误重定向规则,必要时临时禁用重写规则测试。

  • 测试服务器本地访问
    在服务器本地使用curl或Postman直接请求API,排除网络代理或防火墙的影响。示例curl命令:

    curl -X POST -H "Content-Type: application/json" -d '{"请求体参数"}' http://localhost/api/ebonyiproxy/validateexpectedpaymentref
    

    若本地请求正常,说明问题出在外部网络链路;若仍报错,继续排查IIS内部配置。

内容的提问来源于stack exchange,提问作者Rikudou En Sof

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 21:35:23