Asp.Net Core 开发并部署到Ubuntu

发布日期:2019-06-12

 

 

 

涉及:Asp.Net Core Webapi    Ubuntu服务器   Nginx代理

 

Asp.Net Core WebApi 开发

创建Asp.Net Core WebApi程序

 

 创建一个简单的测试案例就可以了,

using Systemusing System.Collections.Genericusing System.Linqusing System.Threading.Tasksusing Microsoft.AspNetCore.Httpusing Microsoft.AspNetCore.Mvcnamespace 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.Mvcnamespace 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.gpgsudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpgsudo 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-httpssudo apt-get updatesudo apt-get install dotnet-sdk-2.1.1

 

查看DotNet版本

dotnet --version

 

上传发布文件到Ubuntu

创建文件夹命令  mkdir     上传文件 rz     

 

 

 

上传成功之后  运行该程序

 

 通过Http://Ip地址:5005  测试访问

 

 

安装Nginx并对其做相应配置

安装Nginxsudo apt-get install nginx查看Nginx版本nginx -v启动nginx 或者重启nginxservice nginx startservice nginx restart如果端口号被占用则会提示nginx: [emerg] "server" directive is not allowed here in /etc/nginx/sites-enabled/default:21nginx: 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

通过域名访问