【Core】.NET Core 部署在Linux

本文详细介绍在CentOS上安装.NET Core SDK、部署.NET Core网站及使用Supervisor创建守护进程的方法。从注册微软密钥、安装.NET Core SDK,到部署网站并解决常见错误,再到使用Supervisor确保应用稳定运行,提供了全面的技术指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

阅读目录

一、安装.NET  Core SDK 在CentOS上

1.右键打开命令行

 

2.为了安装.NET,需要注册微软签名密钥和添加微软相关的支持。这个操作每台机器只能做一次。

Add the dotnet product feed(其实就是向微软提交投名状,表示我这台服务器要用core),注意:先检测下是否能联网; 
打开命令行,执行以下命令:

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc

sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'

 

 

 

3.安装 .NET Core SDK

命令一:sudo yum update

  需要一段时间,而且会提示是否继续,输入y然后回车。

  如果遇到提示another app is currently holding the yum lock;waiting for it to exit,表示yum正在被使用,通过以下命令强制关闭:rm -f /var/run/yum.pid

命令二:sudo yum install libunwind libicu


命令三:sudo yum install dotnet-sdk-2.0.2

            (3.0版本的sudo yum install dotnet-sdk-3.0)

 

4.使用命令 dotnet --info 查看是否安装成功

出现下面界面则说明安装sdk成功

 

二、部署网站

1.创建文件夹

mkdir core

cd core

 

 

2.我这里使用的是虚拟机,就直接将生成好的文件拷到core目录下,然后执行命令(dotnet 项目名称.dll)

 

3.将发布的代码复制到core文件夹

 发布:dotnet NetCore2Mvc.dll

 报错:An assembly specified in the application dependencies manifest (NetCore2.0.Mvc.deps.json) was not found

 

出现这个错误,是因为未安装dotnet-hosting-2.0.x (对应上图中的2.0.8)

使用yum 安装一下:sudo yum install dotnet-hosting-2.0.8

 

4.安装完成,发布成功!

 

5.浏览网站

 

注意:.Net Core 默认创建的项目部署完成以后,只能在本机内访问,外部通过IP是打不开的,可以通过配置Nginx实现。也可以通过修改Program.cs

 
WebHost.CreateDefaultBuilder(args)
                .UseKestrel()
                .UseUrls("http://*:5000")
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseStartup<Startup>()
                .Build();
 

 

 

 UseUrls(http://*:5000即可实现通过IP访问程序。

 

三、Supervisor为 dotnet 创建守护进程

关闭shell后保持程序继续运行

1.安装 yum install supervisor

2.在etc文件夹下新建文件夹supervisor

mkdir /etc/supervisor

3.在supervisor文件夹下新建文件夹conf.d

mkdir /etc/supervisor/conf.d

4.生成supervisord.conf配置文件

echo_supervisord_conf > /etc/supervisor/supervisord.conf

5.定位到文件夹下修改配置文件:

cd /etc/supervisor

vim  supervisord.conf

修改前:

 修改后:

然后按esc  键入":wq"保存退出

6.本地新建core3web.conf

 
[program:core3web]
command=dotnet Core3Web.dll
directory=/netpublish/coreweb
environment=ASPNETCORE_ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=1
stderr_logfile=/var/log/core3web.err.log
stdout_logfile=/var/log/core3web.out.log
 

说明:

command= 要执行的命令
directory= 命令执行的目录
environment= 环境变量
user= 进程执行的用户身份
stopsignal=INT
autostart= 是否自动启动
autorestart= 是否自动重启
startsecs= 自动重启间隔
stderr_logfile= 标准错误日志
stdout_logfile= 标准输出日志

上传到自己新建的文件夹conf.d目录下

在文件夹var/log/ 创建core3web.err.log和core3web.out.log

7.运行supervisord,查看是否生效

supervisord -c /etc/supervisor/supervisord.conf

8.查看进程:

ps -ef | grep dotnet

 

9.守护进程已创建,现在关闭命令窗口也可以访问自己的网站了。

 

10.界面管理

  • 10.1键入命令
# systemctl enable supervisord.service
# systemctl start supervisord.service
# systemctl status supervisord.service

  • 10.2修改supervisord.conf配置文件

默认是被注释的(分号代表注释)

 ins键 修改后  按esc  键入:wq保存退出 修改后

  • 10.3修改后重新加载配置文件
supervisorctl reload

  • 10.4访问:9001

 如果需要用户名账号登录把注释去掉就行了

 

新增了一个java项目

新增conf文件

 
[program:SpringBootDemo]
command=java -jar springbootdemo-0.0.1-SNAPSHOT.jar --server.port=7890
directory=/javapublish/springdemo1
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=1
stderr_logfile=/var/log/core3web.err.log
stdout_logfile=/var/log/core3web.out.log
 

 

reload即可

 

### 回答1: 要将ASP.NET Core部署Linux,您需要执行以下步骤: 1. 安装.NET Core运行时环境:在Linux上安装.NET Core运行时环境,以便您的应用程序可以在Linux上运行。 2. 编译应用程序:使用.NET Core CLI编译您的ASP.NET Core应用程序。 3. 配置Web服务器:选择一个Web服务器,例如Nginx或Apache,并配置它以便它可以将请求转发到您的应用程序。 4. 部署应用程序:将编译的应用程序和所有依赖项复制到Linux服务器上,并启动应用程序。 5. 测试应用程序:使用浏览器或命令行工具测试您的应用程序是否在Linux上运行正常。 请注意,部署ASP.NET Core应用程序到Linux可能需要一些额外的配置和调试,因此建议您在开始之前仔细阅读官方文档和相关教程。 ### 回答2: ASP.NET Core 是一种跨平台的 Web 开发框架,可以在 Windows、Linux 和 macOS 上运行。本篇文章将介绍将 ASP.NET Core 部署Linux 上的过程。 首先,需要准备一台 Linux 服务器,可以选择云服务器或者本地虚拟机。在服务器上需要安装 .NET Core 运行时环境,可以参考 Microsoft 官方文档进行安装,一般需要执行以下命令: ``` sudo apt-get update sudo apt-get install dotnet-sdk-3.1 ``` 安装完成后,需要编写 ASP.NET Core 应用程序,并将其打包成可执行文件。 在 Visual Studio 或者 Visual Studio Code 中创建 ASP.NET Core 项目,然后选择“发布”选项,可以选择将项目发布到文件夹或者直接打包成可执行文件。如果选择打包成可执行文件,可以使用以下命令: ``` dotnet publish -c Release -r linux-x64 ``` 其中,linux-x64 表示将程序打包成针对 Linux 的 64 位版本,如果需要打包成其他版本,可以参考 Microsoft 官方文档进行修改。 打包完成后,需要将程序上传到 Linux 服务器上。可以使用 SSH 或者 FTP 等方式进行上传。上传完成后,在 Linux 中,需要给可执行文件添加可执行权限,使用以下命令: ``` chmod +x [可执行文件名] ``` 接着,进入程序所在的文件夹并启动程序,使用以下命令: ``` cd [程序所在的文件夹] ./[可执行文件名] ``` 程序启动后,可以使用浏览器访问 Linux 服务器的 IP 地址和端口号来访问 ASP.NET Core 应用程序。 需要注意的是,如果应用程序需要连接数据库等外部服务,需要在 Linux 服务器上安装相应的数据库和服务,并进行配置。此外,需要在 Linux 服务器上配置防火墙规则,允许外部访问 ASP.NET Core 应用程序所在的端口。 总结起来,将 ASP.NET Core 部署Linux 上需要完成以下步骤: 1. 安装 .NET Core 运行时环境; 2. 编写 ASP.NET Core 应用程序,并将其打包成可执行文件; 3. 将可执行文件上传到 Linux 服务器,并添加可执行权限; 4. 启动应用程序,并配置相应的数据库和服务; 5. 配置防火墙规则允许外部访问 ASP.NET Core 应用程序。 以上就是 ASP.NET Core 部署Linux 的过程,通过这种方式,可以更好地实现跨平台的 Web 开发。 ### 回答3: ASP.NET Core 是一种跨平台的开发框架,用于构建 Web 应用程序。ASP.NET Core 带有多种选项,其中之一是将开发的 ASP.NET Core 应用程序部署Linux 上。以下是 ASP.NET Core 部署Linux 的过程。 一、在 Linux 上安装 ASP.NET Core 和运行环境 首先,需要在 Linux 中安装 .NET Core 运行时环境和 ASP.NET Core。在 Linux 上, .NET Core 支持 RHEL、Ubuntu、Debian、CentOS、Fedora 和 Linux Mint 等主要发行版。 二、将 ASP.NET Core 应用程序打包为 Linux 适用的发布包 要将 ASP.NET Core 应用程序打包为 Linux 适用的发布包,需要打开终端并切换到 ASP.NET Core 项目源目录。然后使用“dotnet publish”命令生成发布包。 三、将发布包复制到 Linux 服务器 将应用程序的发布包复制到 Linux 服务器,可以使用 Secure Copy(SCP)来完成。在本地计算机上打开终端,输入以下命令: scp -r /pach/to/publish/folder username@servername:/var/aspnetcore/publish 四、创建 Systemd 服务 在 Linux 上为 ASP.NET Core 应用程序启用自动启动和自动重启,需要创建 Systemd 服务。可以使用编辑器打开 .service 文件,文件位置 /etc/systemd/system/myapp.service: [Unit] Description=MyApp ASP.NET Core Application [Service] WorkingDirectory=/var/aspnetcore/publish ExecStart=/usr/bin/dotnet /var/aspnetcore/publish/MyApp.dll Restart=always RestartSec=10 SyslogIdentifier=myapp User=www-data Environment=ASPNETCORE_ENVIRONMENT=Production [Install] WantedBy=multi-user.target 五、启动应用程序 使用以下命令来启动 ASP.NET Core 应用程序: sudo systemctl start myapp 之后就可以在 Linux 上访问和使用 ASP.NET Core 应用程序了。 以上就是 ASP.NET Core 部署Linux 的过程。部署过程较为繁琐,但是使用 .NET Core 能够极大的提高跨平台开发的效率以及跨平台应用的可移植性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值