centos8中运行asp.netCore应用程序
作者:admin 来源:原创 2024/1/18 17:24:54

一、在centos8中安装dotnet

1、查看系统版本

    uname -a

    显示x86_64

    

2、下载sdk

    下载网址:
    https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0

    

    3、上传文件dotnet-sdk-6.0.415-linux-x64.tar.gz到dotnet文件夹内

    

    4、安装

    cd dotnet到达dotnet文件夹内

    执行安装解压并安装命令:

mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-6.0.415-linux-x64.tar.gz -C $HOME/dotnet
设置系统范围的环境变量:
export DOTNET_ROOT=$HOME/dotnet
export PATH=$PATH:$HOME/dotnet

    重启后dotnet命令会失效,编辑/etc/profile。

sudo nano /etc/profile
     在最后加上:
export PATH=$PATH:$HOME/dotnet
export DOTNET_ROOT=$HOME/dotnet
    

    检查:dotnet --info

    

    dotnet --version

    

    dotnet --list-sdks

    

二、新建asp.net core项目并发布

    1、新建项目

    

    2、安装

    (1)Microsoft.Extensions.Hosting

    (2)Microsoft.Extensions.Hosting.Systemd

    

    3、修改Program.cs

    在Host.CreateDefaultBuilder(args)后追加UseSystemd()

    在webBuilder.UseStartup<Startup>()后追加UseUrls("http://*:5000")

    

namespace test
{
    public class Program
    {
        private static IConfigurationRoot Configuration { get; set; }
        public static void Main(string[] args)
        {
            var config = new ConfigurationBuilder()
               .SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
               .AddJsonFile("appsettings.json", optional: true)
               .Build();
            Configuration = config;
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args).UseSystemd()
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    //webBuilder.UseKestrel().UseUrls(Configuration["server.urls"]);
                    webBuilder.UseStartup<Startup>().UseUrls("http://*:5000");
                });
    }
}
     4、新增Startup.cs
namespace test
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllersWithViews();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }
            app.UseStaticFiles();

            app.UseRouting();

            app.UseAuthorization();

            app.UseHttpsRedirection();
            app.UseCookiePolicy();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
            });
        }
    }
}

    5、发布项目

    

     6、上传文件到test文件夹

    

    7、赋予执行权限

sudo chmod 777 test.dll
      8、执行
dotnet test.dll

三、设置守护程序

    1、赋予执行权限

sudo chmod 777 test.dll
    2、cd到system位置
cd /etc/systemd/system
    3、创建view.service文件
sudo nano view.service
    4、输入内容
[Unit]
Description=view service

[Service]
# 应用程序所在的文件目录
WorkingDirectory=/home/lwdred/test/
ExecStart=/home/lwdred/dotnet/dotnet /home/lwdred/test/test.dll
Restart=always

# 如果dotnet服务崩溃,10秒后重新启动服务
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=AspNetCoreDemo
User=lwdred
Environment=ASPNETCORE_ENVIRONMENT=Development
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target

快捷键Ctro+字母o后输入文件名:view.service

快捷键Ctro+字母x后保存文件并退出编辑模式。

    5、启动服务

    根据需要适当执行以下服务命令。

/重新挂载服务
sudo systemctl daemon-reload
//启动服务
sudo systemctl start view.service
//重启服务
sudo systemctl restart view.service
//停止
sudo systemctl stop view.service
//查看服务状态
sudo systemctl status view.service
//设置开机启动
sudo systemctl enable view.service
//查看服务是否是自启动
systemctl is-enabled view.service


称      呼:
联系方式:
您的评论:
技术支持:l.w.dong@qq.com www.luweidong.cn
广州市   wx:lwdred
Copyright © 2014 三味书屋 All Rights Reserved
技术支持:l.w.dong@qq.com  sitemap xml  sitemap html

粤公网安备44010602011869号

粤ICP备13031080号-1