ASP.NET Core 3.1 / 5 WeatherForecast 示例 Web API 项目引发错误 404

Posted

技术标签:

【中文标题】ASP.NET Core 3.1 / 5 WeatherForecast 示例 Web API 项目引发错误 404【英文标题】:ASP.NET Core 3.1 / 5 WeatherForecast sample Web API project throws error 404 【发布时间】:2021-12-27 00:44:36 【问题描述】:

我在 Visual Studio 2019 中创建了一个 ASP.NET Core 5 Web API 项目,默认情况下只有一个控制器,并且它返回一个 http 404 错误。

这是控制器(很简单)

[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase

    [HttpGet]
    public string Get()
    
        return "test";
    

当我调用 http://localhost:5000/weatherforecast 时,它总是返回 http 404。

PS:我用的是macos

有什么帮助吗?

谢谢

【问题讨论】:

【参考方案1】:

它是一个 API,而不是一个 Rest 服务。试试这个

[ApiController]
[Route("api/[controller]/[action]")]
public class WeatherForecastController : ControllerBase

   
    public string Get()
    
        return "test";
    

和网址

http://localhost:5000/api/weatherforecast/get

【讨论】:

【参考方案2】:

根据您的描述,我发现url的路径是正确的,建议您检查startup.cs,确保您添加了以下代码:

ConfigureServices 方法内部:

       services.AddControllers();

配置方法内部:

        app.UseEndpoints(endpoints =>
        
            endpoints.MapControllers();
        );

如果添加这些仍然不起作用,请上传startup.cs代码,让我们找出这个路由不起作用的原因。

【讨论】:

以上是关于ASP.NET Core 3.1 / 5 WeatherForecast 示例 Web API 项目引发错误 404的主要内容,如果未能解决你的问题,请参考以下文章

通过 ASP.NET Core 3.1/5.0 MVC 中的脚本使用选定的 ''value='' 填充数据库

在 swagger ui 中使用 asp.net core 3.1 中的 Swashbuckle 6.0.5 使 AuthorizationUrl 可配置

[WebApi]ASP.Net Core 中使用JWT认证(3.1版本,5.0也可以使用)

[WebApi]ASP.Net Core 中使用JWT认证(3.1版本,5.0也可以使用)

ASP.NET Core--.net core 3.1 部署到 IIS

Centos8 下部署 ASP.net Core 程序