.NET Core API ToDoAPI无法开箱即用

时间:2018-01-21 19:52:01

标签: c# asp.net-web-api visual-studio-code

我正在尝试在VS Code中创建一个新的API。我按照MS页面上的说明操作: https://docs.microsoft.com/en-us/aspnet/core/tutorials/web-api-vsc

入门指南很简单。安装了Core SDK(2.1.4)后,在控制台中运行:

mkdir TodoApi
cd TodoApi
dotnet new webapi

这创建了一个新项目,我应该可以从VS或VS代码运行。但是,当我尝试从两者中运行时,我收到一条错误消息,指出无法找到“localhost:/ 5000”。

我假设这是SDK生成的代码中的错误,但我不是C#精明。有没有其他人有这个问题?有解决方案吗?

2 个答案:

答案 0 :(得分:1)

有一个错误......但不是SDK,它与教程有关 - 当你使用dotnet new webapi时,它会正确地创建项目,但可能使用不同的端口。

如果您转到Properties\launchsettings.json文件,您将看到应该使用的端口。 e.g。

"iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:53096/",
      "sslPort": 0
    }
  },

然后,您可以导航至http://localhost:53096/api/values以查看其效果。

请注意,根http://localhost:[your port]/将始终返回Not Found,因为该webapi模板没有任何路由设置。

本教程的其余部分不应该有任何其他问题。

答案 1 :(得分:1)

如果您的意思是浏览器的白屏显示"无法找到localhost:/ 5000"然后是的,这是预期的行为,解决方案的默认启动设置是转到项目的路线" /"但是一个web api并没有满足这个合同(没有针对它的行动)。

如果您想测试您的网络API,请转到

  

http://localhost:5000/api/Values/Get

我怎么知道这个?

在web api项目中有一个名为Controllers的文件夹,在该文件中有一个名为ValuesController的类,您可以看到该类具有属性

[Route("api/[controller]")]

请阅读此处了解有关属性路由的更多信息

  

https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing

我只是声明获取此控制器的默认方式是/api/Values(删除标准控制器一词)然后调用一个动作(可以使用任何但我使用的获取)。< / p>

在运行应用程序时,有多种方法可以覆盖默认的基本URL,用于启动和构建应用程序的设置都在项目的./vscode/目录下,可能有一个游戏。 / p>

希望这有帮助。