1、概要
闲来无事写了一个基于.Net8的项目,之前都是在Window服务器上部署的。刚好最近在玩Debian系统,顺便试试.Net Core跨平台的部署,看着官方文档进行配置,还是比较顺利。
现在把我的实操的正确姿势分享一下,请各位对号入座。
2、环境背景
系统:Debian11
项目:基于.Net8的Asp.Net Core WebApi
3、WebApi创建与发布
3.1、创建
创建一个WebApi程序
在Program.cs文件,修改以下两个地方
//注释环境配置,使得我们在生产环境可以看到Swagger页面
// 判断我们是否部署成功
//if (app.Environment.IsDevelopment())
//{
app.UseSwagger();
app.UseSwaggerUI();
//}
// 注释Https定向
//app.UseHttpsRedirection();
3.2、发布
发布为文件夹,并将publish文件夹打包压缩
拷贝到服务器中/usr/文件夹中(按个人习惯)
4、部署(重点来了)
登录Debian服务器,依次相关环境和依赖包
4.1、安装.Net Core环境
将 Microsoft 包签名密钥添加到受信任密钥列表,并添加包存储库,依次执行以下命令
// 下载Microsoft 包签名密钥
wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
// 添加包存储库
sudo dpkg -i packages-microsoft-prod.deb
// 删除秘钥
rm packages-microsoft-prod.deb
安装SDK, 因为我这里是用.net8,所以用8.0的sdk
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-8.0
验证环境,输入dotnet --info
4.2、防火墙配置
个人习惯,如果不需要可以忽略这一段
安装防火墙ufw
sudo apt install ufw
开放22端口以及软件计划部署的端口(这里用5432)
// 开放22端口,不然等下启动防火墙直接断了远程
sudo ufw allow 22/tcp
// 开放5432端口
sudo ufw allow 5432/tcp
启动防火墙
sudo ufw enable
sudo systemctl start ufw
4.3、解压文件
切换到/usr/目录文件,依次执行以下命令
// 安装解压包
sudo apt install -y zip
// 解压publish.zip
sudo unzip publish.zip
// 删除压缩包
sudo rm publish.zip
// 进入目录
cd publish
4.4、部署运行
执行命令
/**
* WebAip.dll 是主程序dll的名称,注意大小写
* 5432是指定的端口号
*/
dotnet WebApi.dll --urls=http://*:5432
执行成功,这样就可以访问你发布的项目了,可以访问swagger页面
正常访问接口
5、小结
其实稍微看下官方文档,就可以轻松部署了。下一步我会介绍如何守护进程,保证程序能够在后台运行,不需要每次都进行命令行启动
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/kongkgzmc/article/details/143796936

浙公网安备 33010602011771号