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

通過域名訪問