我有一台安装了 Ubuntu 16.04 的服务器,这是一个lsb_release -a
输出:
我正在尝试让我的 ASP.NET Core 2.0 应用程序 (webapi) 在此服务器上运行。我的目标是让 Kestrel 服务器在端口 8000 上运行,以便我可以从任何远程主机(不仅仅是从本地主机)调用它。
让我告诉你我到目前为止所做的:
我安装了 .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
。curl -I http://localhost:5000/api/values/
但响应是 404:我尝试app.UseMvc()
在 Startup.cs 中更改为,app.UseMvcWithDefaultRoute()
但没有帮助 - 我仍然无法访问我的 ValuesController。
如您所见,我无法运行开箱即用的应用程序。我错过了什么?
您缺少与定义的路由匹配的动词 GET。默认情况下 -I 将发送 HEAD 请求。
例如,对于 GET:
$ curl -I -X GET http://localhost:5000/api/values/
HTTP/1.1 200 OK
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句