Asp.Net Core 開發並部署到Ubuntu
阿新 • • 發佈:2018-12-17
涉及:Asp.Net Core Webapi Ubuntu伺服器 Nginx代理
Asp.Net Core WebApi 開發
建立Asp.Net Core WebApi程式
建立一個簡單的測試案例就可以了,
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace Hubert.Api.Demo.Controllers {public class DemoController : BaseController { // GET: api/Demo [HttpGet] public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // GET: api/Demo/5 [HttpGet("{id}", Name = "Get")] public string Get(intid) { return "value"; } // POST: api/Demo [HttpPost] public void Post([FromBody] string value) { } // PUT: api/Demo/5 [HttpPut("{id}")] public void Put(int id, [FromBody] string value) { }// DELETE: api/ApiWithActions/5 [HttpDelete("{id}")] public void Delete(int id) { } } }
BaseController 程式碼 這裡可以寫一些公共的方法引數等
using Microsoft.AspNetCore.Mvc; namespace Hubert.Api.Demo.Controllers { [Route("api/[controller]/[action]")] [ApiController] public class BaseController : ControllerBase { } }
釋出Asp.Net Core WebApi程式
可以先測試一下 部署到IIS需要安裝 AspNetCoreModule 並且應用池設定無託管即可;
部署Asp.Net Core WebApi 到Ubuntu伺服器
首先安裝Asp.Net Core SDK
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-bionic-prod bionic main" > /etc/apt/sources.list.d/dotnetdev.list' sudo apt-get install apt-transport-https sudo apt-get update sudo apt-get install dotnet-sdk-2.1.1
檢視DotNet版本
dotnet --version
上傳發布檔案到Ubuntu
建立資料夾命令 mkdir 上傳檔案 rz
上傳成功之後 執行該程式
通過Http://Ip地址:5005 測試訪問
安裝Nginx並對其做相應配置
安裝Nginx sudo apt-get install nginx 檢視Nginx版本 nginx -v 啟動nginx 或者重啟nginx service nginx start service nginx restart 如果埠號被佔用則會提示 nginx: [emerg] "server" directive is not allowed here in /etc/nginx/sites-enabled/default:21 nginx: configuration file /etc/nginx/nginx.conf test failed 這個時候你需要 檢視埠是否被佔用 netstat -ntpl 殺死這個程序 kill 關於80埠的程序 然後在啟動nginx就可以啦
建立一個關於dotnetcore webapi的配置檔案;我這裡已經建立好了
輸入命令vi 編輯這個配置檔案
vi hubert
還需要在nginx配置檔案中引入Hosts資料夾的配置
在http裡配置
include /etc/nginx/hosts/*;
然後重啟nginx
service nginx restart
通過域名訪問