【问题标题】:Azure ASP Web API error 405 method not allowedAzure ASP Web API 错误 405 方法不允许
【发布时间】:2017-11-30 07:01:32
【问题描述】:

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

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

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

谢谢:-)

【问题讨论】:

  • 通常这应该“正常工作”。添加一些日志记录(想想 Application Insights)以查看问题所在。您如何调用 POST 和 GET 方法进行测试?

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


【解决方案1】:

请检查您是否正确传递了参数。浪费了很多时间弄清楚这一点。

【讨论】:

  • 同意.. 我在 POST 上不断收到 405 响应,因为我的路径是“.../_apis/tfvc/changesets?api-version=4.1-preview.1”。当我删除“-preview.1”时,它开始工作:“.../_apis/tfvc/changesets?api-version=4.1。”感谢您的帮助。
【解决方案2】:

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

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

【讨论】:

  • 天哪,这救了我!
【解决方案3】:

我假设您的 Web 应用程序使用 js 库/框架(反应/角度)。通常在请求之前,他们使用“选项”动词发送预检 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

【讨论】:

    【解决方案4】:

    试试看

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

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

    【讨论】:

      猜你喜欢
      • 2012-03-21
      • 2013-03-21
      • 1970-01-01
      • 2017-10-18
      • 2018-02-04
      • 2016-03-23
      • 2018-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多