.net core centos 7部署踩坑大全
一:.netcore环境搭建
1、执行命令
1 |
sudo rpm -Uvh https: //packages .microsoft.com /config/rhel/7/packages-microsoft-prod .rpm
|
2、更新yum
1 |
sudo yum update
|
3、安装.netcore
1 |
sudo yum install dotnet-sdk-2.2 -y
|
4、检测是否安装成功:
二:创建.netcore web程序并运行
1、定位到你想放置项目的位置,创建项目
1 |
cd /home
|
2、直接发布项目到项目文件夹
1 2 |
cd testApp
dotnet publish -o /home/testApp/Release
|
3、测试运行.netcore程序
1 2 |
cd release
dotnet testApp.dll
|
4、如需通过宿主机访问,需修改Program.cs代码,方式多种,这里采用添加host.json方式
首先更改CreateWebHostBuilder方法代码如下
public static IWebHostBuilder CreateWebHostBuilder(string[] args) { var configuration = new ConfigurationBuilder().SetBasePath(Environment.CurrentDirectory) .AddJsonFile("host.json") .Build(); return WebHost.CreateDefaultBuilder(args).UseConfiguration(configuration) .UseStartup()
.UseUrls("http://*:5000,https://*:5001"); }
或在项目根目录添加host.json文件或直接
{ "urls": "http://*:5000" }
5、通过浏览器访问 http://虚拟机ip:5000,注意如果是虚拟机要与主机在同一个网段,否则要路由才能访问,另外 要将端口打开:
三:设置.netcore程序开机启动
1、创建服务文件
vim /etc/systemd/system/testApp.service
写入如下内容:
[Unit] Description=testApp for centos7 [Service] WorkingDirectory=/home/testApp/Release ExecStart=/usr/bin/dotnet /home/testApp/Release/testApp.dll Restart=always RestartSec=10 # Restart service after 10 seconds if dotnet service crashes SyslogIdentifier=dotnet-testApp User=root Environment=ASPNETCORE_ENVIRONMENT=Production Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false [Install] WantedBy=multi-user.target
2、设置开机自动启动testApp.service服务
systemctl enable testApp.service
3、开启服务,并查询状态
systemctl start testApp.service systemctl status testApp.service