【问题标题】:405 on POST request, unsupported method is GETPOST 请求 405,不支持的方法是 GET
【发布时间】:2020-02-18 09:22:04
【问题描述】:

我遇到了以下问题,我有一个 ASP.NET Web API,当在开发机器上发出一个 POST 请求时,我得到了预期的输出,但是在部署之后在 IIS 上,我得到了响应

"message": "The requested resource does not support http method 'GET'."

我通过 Postman 提供的输入如下所示

我已经阅读了下面的帖子,但在 IIS 中闲逛了一段时间后,我并没有从中得到什么。https://docs.microsoft.com/en-us/aspnet/web-api/overview/testing-and-debugging/troubleshooting-http-405-errors-after-publishing-web-api-applications

方法的开头如下所示

    [HttpPost]
    [Route("something/CandidatePersonal")]
    public IHttpActionResult PostCandidatePersonal(CanPersonal apiPostInput)

考虑到一切顺利,它会返回一个 OK 语句。

【问题讨论】:

  • 您是否在使用某种虚拟路径?请注意:在/CandidatePersonal 中使用/ 可能会覆盖启动文件中定义的基本路径,甚至会在IIS 虚拟路径中出现奇怪的行为。大多数情况下,您应该在没有前导斜杠的情况下输入它:[Route("CandidatePersonal")]
  • 这可能是CORS 问题。用[EnableCors(origins: "*", headers: "*", methods: "GET, POST, PUT, DELETE")] webapi.config 装饰你的Controllerconfig.EnableCors();
  • @Silvermind 我将其简化为不公开任何确切路径,因为这是一个公司项目,但确实有完整路径而不仅仅是 /
  • @RahulSharma 遗憾的是这不是问题,仍然是完全相同的错误。
  • @NiceDevelopmentq 嗯,这可能是因为您调用API 的基本网址。尝试将WWW 添加到URL 以调用API

标签: c# asp.net .net iis


【解决方案1】:

关于您的方案,您需要在您的 API 方法中添加 [AcceptVerbs("GET", "POST")]

【讨论】:

    猜你喜欢
    • 2014-06-10
    • 2018-04-13
    • 2013-03-30
    • 2017-07-01
    • 1970-01-01
    • 2012-06-22
    • 2015-04-23
    • 2020-07-24
    • 2017-05-03
    相关资源
    最近更新 更多