ASP.NET Core 2.0 webapi 应用程序无法在 Ubuntu 16.04 上运行

ASP.NET Core 2.0 webapi application not working on Ubuntu 16.04

我有一台安装了 Ubuntu 16.04 的服务器,这里是 lsb_release -a 输出:

我正在尝试在此服务器上安装我的 ASP.NET Core 2.0 应用程序 (webapi) 运行。我的目标是在端口 8000 上安装一个 Kestrel 服务器 运行ning,这样我就可以从任何远程主机(不仅从本地主机)调用它。

让我向您展示我到目前为止所做的事情:

  1. 我安装了.net核心:

    curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
    sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
    sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod xenial main" > /etc/apt/sources.list.d/dotnetdev.list'
    
  2. 我创建了一个应用程序:

    dotnet new webapi -n webapi 我在这里收到一个错误,说无法在某些 /tmp/... 目录中获得锁,但 dotnet new 命令本身成功了。我认为这一定是某种权限问题,所以我在项目目录中应用了一个 sudo dotnet restore 命令,一切顺利。

  3. 我 运行 使用 dotnet run 的应用程序并收到消息说 Now listening on http://localhost:5000
  4. 我打开了另一个 ssh 会话并执行了 curl -I http://localhost:5000/api/values/ 但响应是 404:

我尝试将 Startup.cs 中的 app.UseMvc() 更改为 app.UseMvcWithDefaultRoute() 但它没有帮助 - 我仍然无法访问我的 ValuesController。

如您所见,我无法 运行 开箱即用的应用程序。我错过了什么?

您缺少与定义的路由匹配的动词 GET。 默认情况下-我会发送一个HEAD请求。

例如,对于 GET:

$ curl -I -X GET http://localhost:5000/api/values/
HTTP/1.1 200 OK