• 文章列表
  • >
  • 正在阅读
  • Linux(Ubuntu) 下运行 Asp.Net Core 的基本配置步骤和一些注意事项

    安装运行时

    # 更新源
    sudo apt-get update
    # 安装 8.0 的运行时
    sudo apt-get install -y aspnetcore-runtime-8.0
    

    SkiaSharp(图片处理库)

    包引用

    1 SkiaSharp

    2 SkiaSharp.NativeAssets.Linux.NoDependencies

    发布时

    目标运行时要选择 Linux 相关的选项,在发布时才会含有 libSkiaSharp.so 库。

    部署

    将发布的程序文件通过 FTP 上传到 Linux 服务器上。

    运行

    测试运行

    dotnet xxxx.dll --urls=http://*:5005
    

    这样的运行方式程序会随 shell 会话的结束而停止, 建议用 nohup 命令来启动程序,让程序在后台运行:

    nohup dotnet xxxx.dll --urls=http://*:5005
    

    正式运行

    正式运行应该以服务的方式来运行,以保证程序会随系统的启动一起运行。

    创建服务配置文件:

    sudo vim /etc/systemd/system/Test.WebApp.service
    

    编辑配置内容:

    [Unit]
    Description=Test.WebApp
    
    [Service]
    # 进程的工作目录:必须明确指定,默认值会导致 ContentRootPath 和 WebRootPath 指向错误
    WorkingDirectory=/var/www/site001/
    # 通过 dotnet 命令运行我们的程序
    ExecStart=dotnet /var/www/site001/Test.WebApp.dll
    # 非正常退出时总是重启
    Restart=always
    # 指定登录用户(该用户必须具有运行该程序的权限)
    User=wbh
    # DOTNET相关环境变量设置
    Environment=ASPNETCORE_URLS=http://*:5005
    Environment=ASPNETCORE_ENVIRONMENT=Production
    
    [Install]
    WantedBy=multi-user.target
    

    保存服务配置文件,然后启动服务:

    sudo systemctl start Test.WebApp.service
    

    查看服务状态以确认服务配置正确及程序正常运行:

    sudo systemctl status Test.WebApp.service
    

    确认程序正常运行之后,在防火墙中打开端口就能通过其它计算机访问应用程序了。

    最后,最好是通过 Nginx 配置 ssl 证书之后进行反向代理为好!

    ©2024