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,这样我就可以从任何远程主机(不仅从本地主机)调用它。
让我向您展示我到目前为止所做的事情:
我安装了.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'
我创建了一个应用程序:
dotnet new webapi -n webapi
我在这里收到一个错误,说无法在某些 /tmp/... 目录中获得锁,但 dotnet new 命令本身成功了。我认为这一定是某种权限问题,所以我在项目目录中应用了一个 sudo dotnet restore
命令,一切顺利。
- 我 运行 使用
dotnet run
的应用程序并收到消息说 Now listening on http://localhost:5000
。
- 我打开了另一个 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
我有一台安装了 Ubuntu 16.04 的服务器,这里是 lsb_release -a
输出:
我正在尝试在此服务器上安装我的 ASP.NET Core 2.0 应用程序 (webapi) 运行。我的目标是在端口 8000 上安装一个 Kestrel 服务器 运行ning,这样我就可以从任何远程主机(不仅从本地主机)调用它。
让我向您展示我到目前为止所做的事情:
我安装了.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'
我创建了一个应用程序:
dotnet new webapi -n webapi 我在这里收到一个错误,说无法在某些 /tmp/... 目录中获得锁,但 dotnet new 命令本身成功了。我认为这一定是某种权限问题,所以我在项目目录中应用了一个
sudo dotnet restore
命令,一切顺利。- 我 运行 使用
dotnet run
的应用程序并收到消息说Now listening on http://localhost:5000
。 - 我打开了另一个 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