【问题标题】:ASP.NET Core Web API 500 Internal Server ErrorASP.NET Core Web API 500 内部服务器错误
【发布时间】:2017-03-07 10:57:01
【问题描述】:

我正在尝试在 ASP.NET Core 框架中构建 API。我做了一个基本的控制器,它只返回一个字符串:

namespace Dojo_Api.Controllers.Forum
{
    //[Authorize]
    [Route("api/[controller")]
    public class ForumController : Controller
    {
        private MainContext _context;

        public ForumController(MainContext context)
        {
            _context = context;
        }

        [HttpGet]
        public string Get()
        {
            return "string";
        }
    }
}

现在当我尝试通过 Postman 访问 API 时,我收到 500 Internal Server Error:

我已经尝试过更改端口,但没有成功。有谁知道这个问题的解决方案吗?

提前致谢!

【问题讨论】:

  • 您是否调试并检查控制器是否被击中?如果正在执行,那么执行过程中是否有异常?
  • @Peurr 你的ForumController 构造函数包含一个参数。你注入依赖了吗?
  • 添加无参数构造函数:public ForumController(){}
  • 控制器路由在这里缺少一个右方括号[Route("api/[controller")],除非这是写问题时的拼写错误
  • 只是好奇,你在哪里看到[Route("api/[controller]")]用过?

标签: c# asp.net api asp.net-core asp.net-core-webapi


【解决方案1】:
[RoutePrefix("api/forum")]
public class ForumController : Controller
{
    private MainContext _context;

    public ForumController()
    {
        _context = new MainContext();
    }

    [HttpGet]
    public string Get()
    {
        return "string";
    }
}

请试试这个

【讨论】:

    【解决方案2】:

    控制器路由在此处缺少右方括号[Route("api/[controller")],除非在编写问题时这是一个错字。

    应该是

    [Route("api/[controller]")]
    public class ForumController : Controller { ... }
    

    【讨论】:

      猜你喜欢
      • 2018-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-22
      • 2017-10-28
      • 1970-01-01
      • 2020-09-07
      • 2012-06-12
      相关资源
      最近更新 更多