Asp.net web api 本地主机上的Web API错误
我开始使用ASP.NET核心MVC开发Web API。我一直在学习Microsoft教程: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
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添加到问题中吗?