1. 程式人生 > >Asp.Net Core 開發並部署到Ubuntu

Asp.Net Core 開發並部署到Ubuntu

涉及: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(int
id) { 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

通過域名訪問