不允许使用Azure ASP Web API错误405方法

时间:2017-06-27 09:24:33

标签: c# azure http asp.net-web-api

我有一个web api应用程序,我使用VS2017和IIS Express 10在本地编写和测试。我可以使用HTTP或HTTPS在本地运行时进行POST和GET。当我发布到Azure时,我在帖子上都不允许使用方法并通过HTTP获取。

如何配置Azure服务器以允许所有HTTP谓词?

如何在Azure上配置HTTPS是另一个故事......

谢谢: - )

4 个答案:

答案 0 :(得分:0)

我假设您的Web应用程序使用js库/框架(react / angular)。通常在请求之前,他们使用“选项”动词发送预检CORS请求。我相信这是被阻止的那个。

解决此问题的一种简单方法:

的Web.config:

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Methods" value="GET, PUT, POST, DELETE, HEAD" />
        <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
      </customHeaders>
    </httpProtocol>
</system.webServer>

BaseApiController.cs:

 public class BaseApiController : ApiController
  {
    public HttpResponseMessage Options()
    {
      return new HttpResponseMessage { StatusCode = HttpStatusCode.OK };
    }
  }

如果是跨域问题,您可以直接通过Azure门户配置CORS:

https://docs.microsoft.com/en-us/azure/app-service-api/app-service-api-cors-consume-javascript

答案 1 :(得分:0)

请检查您是否正确传递了参数。浪费了很多时间来解决这个问题。

答案 2 :(得分:0)

我遇到了类似的问题,这里的解决方案奏效了。 只需在 POST 调用中将 http 更改为 https 并测试结果。例如在邮递员中,只需将 http 更改为 https。

Azure App Service Error 405 - The request could not be completed. (Method Not Allowed)

答案 3 :(得分:-1)

试试

  var result = new ObjectResult("YOUR MESSAGE");
  result.StatusCode = StatusCodes.Status405MethodNotAllowed;

  return result;

你需要添加这个 => 命名空间 Microsoft.AspNetCore.Mvc