2017-10-14 147 views
0

我有一个服务器上安装Ubuntu的是16.04,这里是一个lsb_release -a输出:ASP.NET 2.0核心应用的WebAPI 16.04

lsb_release -a output

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

让我告诉你,我迄今所做的:

  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新的WebAPI -n webapi 我在这里得到一个错误,表示无法在某些/ tmp/...目录中获得锁,但dotnet新命令本身成功。我认为它必须是某种权限问题,所以我在项目目录中应用了sudo dotnet restore命令,并且它都很好。

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

404 response

我试图改变Startup.cs到app.UseMvc(),但app.UseMvcWithDefaultRoute()它并没有帮助 - 我仍然无法访问我的ValuesController。

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

+0

尝试从控制器和startup.cs张贴代码 – Liero

回答

1

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

例如,对于一个GET:

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

好吧,我很尴尬,现在 - 我想阅读的文档时,我没注意卷曲。谢谢布鲁诺。 – Aranha