Asp.net web api 本地主机上的Web API错误

Asp.net web api 本地主机上的Web API错误,asp.net-web-api,asp.net-web-api2,asp.net-core-mvc,asp.net-core-webapi,Asp.net Web Api,Asp.net Web Api2,Asp.net Core Mvc,Asp.net Core Webapi,我开始使用ASP.NET核心MVC开发Web API。我一直在学习Microsoft教程:https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api 到目前为止,我已经为以下操作创建了代码: GET/api/todo GET/api/todo/{id} 代码: [路由(“api/[控制器]”)] 公共类TodoController:控制器 { 私人只读信息存储库; 公共TodO控制器(ITodoRepository

我开始使用ASP.NET核心MVC开发Web API。我一直在学习Microsoft教程:
https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api

到目前为止,我已经为以下操作创建了代码:

  • GET/api/todo
  • GET/api/todo/{id}
代码:

[路由(“api/[控制器]”)]
公共类TodoController:控制器
{
私人只读信息存储库;
公共TodO控制器(ITodoRepository todoRepository)
{
_todoRepository=todoRepository;
}
//获取:api/值
[HttpGet]
公共IEnumerable GetAll()
{
return _todoRepository.GetAll();
}
//获取api/values/5
[HttpGet(“{id}”,Name=“GetTodo”)]
公共IActionResult GetById(长id)
{
var item=\u todoRepository.Find(id);
如果(项==null)
{
返回NotFound();
}
返回新的ObjectResult(项目);
}
}
但是,当我运行应用程序时,出现以下500个错误:

我理解错误的含义,而不是它发生的原因。我错过什么了吗


有趣的是,我可以访问创建应用程序时自动生成的API。但不是我手动添加的新设置。

更改属性->launchSettings.json文件中的设置

{
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "iisSettings": {
    "windowsAuthentication": false, 
    "anonymousAuthentication": true, 
    "iisExpress": {
      "applicationUrl": "http://localhost:49885",
      "sslPort": 44337
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "api/todo",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "TodoApi": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "api/todo",
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}
因为默认情况下“lauchUrl”被设置为“api/values”,这就是您得到该错误的原因。 也可以将其添加到Todo控制器中,请参阅文档以了解添加该控制器的原因

namespace TodoApi.Controllers
{
    [Route("api/todo")]
    [ApiController]

我建议您遵循创建应用程序的指导原则,直到最后一次,并在完成后运行,以避免出现错误。

更改属性->launchSettings.json文件中的设置

{
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "iisSettings": {
    "windowsAuthentication": false, 
    "anonymousAuthentication": true, 
    "iisExpress": {
      "applicationUrl": "http://localhost:49885",
      "sslPort": 44337
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "api/todo",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "TodoApi": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "api/todo",
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}
因为默认情况下“lauchUrl”被设置为“api/values”,这就是您得到该错误的原因。 也可以将其添加到Todo控制器中,请参阅文档以了解添加该控制器的原因

namespace TodoApi.Controllers
{
    [Route("api/todo")]
    [ApiController]

我建议您遵循创建应用程序的指导原则,直到最后一次,并在完成后运行,以避免出现错误。

您可以将您的WebApiConfig.cs添加到问题中吗?您可以将您的WebApiConfig.cs添加到问题中吗?