加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET Core Web API HTTP POST在Azure中返回404

发布时间:2020-12-16 03:50:24 所属栏目:asp.Net 来源:网络整理
导读:我有这个(简化的)ASP.NET Core Web API控制器. GET和POST操作都可以在我自己的机器上很好地工作.但是,部署到Azure只有GET操作才能正常工作. POST动作导致404.任何想法? namespace Foo{ using System; using System.Collections.Generic; using Microsoft.As
我有这个(简化的)ASP.NET Core Web API控制器. GET和POST操作都可以在我自己的机器上很好地工作.但是,部署到Azure只有GET操作才能正常工作. POST动作导致404.任何想法?

namespace Foo
{
  using System;
  using System.Collections.Generic;
  using Microsoft.AspNetCore.Mvc;

  [RequireHttps]
  [Produces("application/json")]
  [Area("Foo")]
  [Route("[area]/Api/[controller]")]
  public class BarController : Controller
  {
    [HttpGet]
    public IEnumerable<string> Get()
    {
      return new[] {"Hello","World!"};
    }

    [HttpPost]
    public void Post([FromBody] InputModel model)
    {
    }

    public class InputModel
    {
      public int Foo { get; set; }
    }
  }
}

它是一个针对完整.NET框架的ASP.NET Core MVC应用程序.它部署为Azure Web App.我已使用Postman在本地计算机和Azure中测试了这两个操作.

解决方法

在某些情况下,当控制器发生错误时,ASP.NET核心返回404而不是更合适的500.看看这篇文章:

ASP.NET Core 2.0 site POST request resulting in 404 on Azure

在答案中,它是由错误的数据库连接字符串引起的(当您将应用程序发布到另一个环境时可能就是这种情况),但它可能是其他内容.

不知道为什么它不会抛出正常错误,也许它会尝试重定向到自定义错误页面或类似的东西.

要检查此建议,请尝试从POST控制器中删除所有内容以隔离问题.如果它不会返回404,则意味着控制器中的某些内容会抛出异常.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读