ASP.Net Web API 不可用。如果更改为“天气预报”以外的名称

Posted

技术标签:

【中文标题】ASP.Net Web API 不可用。如果更改为“天气预报”以外的名称【英文标题】:ASP.Net Web API is not available. If changing to a name other than "weatherforecast" 【发布时间】:2020-11-11 16:14:17 【问题描述】:

我使用 ASP.Net Web API 在我的项目中创建了 API,并且我 将WeatherForecastController.cs 的名称更改为 APIController.cs 和 chang "launchUrl": "FETL" 而不是 "launchUrl": "weatherforecast" in launchSettings.json

所以我不能运行我的 API,但是如果我在launchSettings.json 中使用默认名称为WeatherForecastController.cs"launchUrl": "weatherforecast",那么就可以使用了。

为什么?又该如何解决呢?

这是launchSettings.jsonWeatherForecastController.cs"launchUrl": "weatherforecast" 的旧默认

"launchUrl": "weatherforecast" in launchSettings.json WeatherForecastController.cs API result

这是我要重命名的,但结果不可用。

"launchUrl": "FETL" in launchSettings.json APIController.cs API result

【问题讨论】:

重命名控制器。如果展开控制器,您将看到 WeatherForecastController。 Url weatherforecast 指向该控制器,不带“Controller”结尾。 【参考方案1】:

像这样为您的控制器使用Route,您可以使用您的控制器名称代替DefaultController

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

请确保您在控制器中定义了一个 GET 方法,类似这样。

[HttpGet]
public IEnumerable<string> Get()

    return new string[]  "Welcome" ;

【讨论】:

我尝试按照您的建议进行操作,但结果是静止的。 检查浏览器控制台。你有什么错误吗? 加载资源失败:服务器响应状态为404(未找到) 您还需要更改启动自动 您的意思是显示请求的代码吗?我很困惑。【参考方案2】:

我尝试关注@vivek nuna 的建议

这就是发生的事情。 WeatherForecastController.cs Result

当我重命名它时。 APIController.cs Result

【讨论】:

是的!,我找到了问题,可以解决,必须在命名时包含“控制器”这个词。 如 APIController.cs、AController.cs 或 BController.cs 等

以上是关于ASP.Net Web API 不可用。如果更改为“天气预报”以外的名称的主要内容,如果未能解决你的问题,请参考以下文章

第一次部署 ASP.NET web api,遇到'/'错误

如何使 ASP.NET Web API Web 服务在本地网络中可用

如何在Asp .Net Web API中的请求的整个生命周期中使类对象可用?

在 ASP.NET 中使用 Web API 优于 Web 方法的优势是啥

如果参数名称等于属性名称,则来自查询的 ASP.NET Core Web API 复杂类型绑定不起作用

有没有办法在 Asp.Net Core Identity 中将 PasswordHash 的数据类型从字符串更改为字节数组