当前位置:   article > 正文

.NET 发布,部署和运行应用程序_.net项目怎么部署

.net项目怎么部署

.NET应用发布

发布.Net应用有很多种方式,下面列举三种发布方式:

  • 单文件发布
  • 跨平台发布
  • Docker发布

单文件发布

        右键工程,选择“发布”,部署模式选择“独立”,目标运行时选择自己想要部署到的系统,我这里用的是linux 64位系统,在文件发布选择项中选择“生成单个文件”,那么发布后生成的就是包含所有环境和依赖项的独立程序,在目标系统中可直接运行改文件。

跨平台发布

        在发布选项中,部署模式选择“独立”,目标运行时选择自己想要部署到的系统,在在文件发布选择项中不选择“生成单个文件”,则是跨平台发布。

Docker发布

        右键工程,选择“添加”,然后选择“Docker支持”,选择目标平台和Dockerfile,配置Dockerfile,发布Dockerfile,使用windows的Powershell打包docker镜像(安装Docker Desktop)。

添加Dockerfile

配置Dokcerfile

Docker镜像打包

Windows打包镜像步骤:

  1. #打开Powershell进入Dockerfile工作目录
  2. cd .../publish
  3. #打包Docker镜像
  4. docker build --tag demo:1.0 .
  5. #镜像导出
  6. docker save -o d:\demo.tar demo:1.0
  7. #将导出镜像复制到远程linux服务器目录
  8. #linux Docker镜像导入
  9. docker load -i /api/demo/demo.tar
  10. #Docker查询,镜像是否导入
  11. docker images
  12. #生成docker容器并启动
  13. docker run -d -p 9000:5000 --name demo demo:1.0

.NET应用部署

部署和运行.Net应用有也很多种方式,下面列举:

  • 单文件直接运行
  • 服务运行
  • Docker运行

单文件直接运行

        将发布的.NET应用程序文件复制到目标平台目录,首先将运行文件赋权,然后输入命令直接运行程序。

  1. chmod +x demo #给文件赋权
  2. ./demo #直接运行程序

服务运行

        通过在/etc/systemd/system/中创建一个服务,并添加配置,然后使能服务,运行服务。查询dotnet安装位置命令

  1. #创建服务
  2. cd /etc/systemd/system/
  3. vim api.service
  4. #添加服务配置
  5. [Unit]
  6. Description=Example .NET Web API App running on Ubuntu
  7. [Service]
  8. WorkingDirectory=/api/ubuntu
  9. ExecStart=/usr/bin/dotnet /api/ubuntu/ProgramShow.WebApi.dll
  10. Restart=always
  11. # Restart service after 10 seconds if the dotnet service crashes:
  12. RestartSec=10
  13. KillSignal=SIGINT
  14. SyslogIdentifier=dotnet-api
  15. User=www-data
  16. Environment=ASPNETCORE_ENVIRONMENT=Production
  17. Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
  18. [Install]
  19. WantedBy=multi-user.target
  20. #使能服务
  21. systemctl enable api.service
  22. #运行服务
  23. systemctl start api.service

注意:ExecStart=/usr/bin/dotnet为dotnet安装文件,查询dootnet安装位置,使用命令:

  1. whereis dotnet #查询dotnet安装位置
  2. /usr/bin/dotnet /usr/lib/dotnet /etc/dotnet #查询结果

WorkingDirectory=/api/ubuntu为应用程序路径

Docker运行

        Docker导入制作好的服务镜像,创建容器并启动容器。

  1. #linux Docker镜像导入
  2. docker load -i /api/demo/demo.tar
  3. #Docker查询,镜像是否导入
  4. docker images
  5. #生成docker容器并启动
  6. docker run -d -p 9000:5000 --name demo demo:1.0

Nginx反向代理

        使用Nginx反向代理,能够使用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址。如果不适用方向代理,外部电脑可能访问改服务。

  1. #安装完nginx后进入sites-available目录
  2. cd /etc/nginx/sites-available/
  3. #创建nginx服务
  4. vim api
  5. #配置服务
  6. server {
  7. listen 9000;
  8. location / {
  9. proxy_pass http://localhost:5000;
  10. proxy_http_version 1.1;
  11. proxy_set_header Upgrade $http_upgrade;
  12. proxy_set_header Connection keep-alive;
  13. proxy_set_header Host $host;
  14. proxy_cache_bypass $http_upgrade;
  15. }
  16. }
  17. #查看服务
  18. ln -s ../sites-available/api ./
  19. #重启ngnix服务
  20. nginx -s reload

参考:

.NETCore项目在Windows下构建Docker镜像并本地导出分发到CentOS系统下_.net程序打包成docker镜像-CSDN博客

[ASP.NET Core] 6.5 发布和部署应用 IIS/Nginx/Docker_哔哩哔哩_bilibili

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/482344
推荐阅读
  

闽ICP备14008679号