【发布时间】:2020-02-18 09:22:04
【问题描述】:
我遇到了以下问题,我有一个 ASP.NET Web API,当在开发机器上发出一个 POST 请求时,我得到了预期的输出,但是在部署之后在 IIS 上,我得到了响应
"message": "The requested resource does not support http method 'GET'."
我已经阅读了下面的帖子,但在 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装饰你的Controller:config.EnableCors(); -
@Silvermind 我将其简化为不公开任何确切路径,因为这是一个公司项目,但确实有完整路径而不仅仅是 /
-
@RahulSharma 遗憾的是这不是问题,仍然是完全相同的错误。
-
@NiceDevelopmentq 嗯,这可能是因为您调用
API的基本网址。尝试将WWW添加到URL 以调用API