我正在尝试在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#精明。有没有其他人有这个问题?有解决方案吗?
答案 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,请转到
我怎么知道这个?
在web api项目中有一个名为Controllers
的文件夹,在该文件中有一个名为ValuesController
的类,您可以看到该类具有属性
[Route("api/[controller]")]
请阅读此处了解有关属性路由的更多信息
https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing
我只是声明获取此控制器的默认方式是/api/Values
(删除标准控制器一词)然后调用一个动作(可以使用任何但我使用的获取)。< / p>
在运行应用程序时,有多种方法可以覆盖默认的基本URL,用于启动和构建应用程序的设置都在项目的./vscode/
目录下,可能有一个游戏。 / p>
希望这有帮助。