新闻中心

.NET怎么在Linux环境下部署和运行_Linux环境部署运行指南

2025-11-11
浏览次数:
返回列表
答案:在Linux部署.NET应用需安装.NET SDK或Runtime,发布应用后通过systemd管理进程并可选Nginx反向代理。首先在Ubuntu添加微软源并安装.NET 8.0 SDK;使用dotnet publish命令发布项目至linux-x64目录,复制到服务器指定路径;进入目录运行dotnet MyApp.dll,默认监听5000端口,可通过ASPNETCORE_URLS环境变量修改绑定地址;推荐创建systemd服务单元文件实现开机启动与自动重启;最后可配置Nginx反向代理转发请求至应用,确保外部访问稳定可靠。

.net怎么在linux环境下部署和运行_linux环境部署运行指南

在Linux环境下部署和运行.NET应用,主要依赖于.NET SDK或.NET Runtime的安装,并结合发布、配置和进程管理等步骤。以下是具体操作流程,适用于主流Linux发行版(如Ubuntu、CentOS等)。

安装.NET SDK或Runtime

若需开发或编译项目,安装.NET SDK;若仅运行已发布的应用,安装.NET Runtime即可。

  • 以Ubuntu为例,添加微软包源:

wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

  • 安装.NET 8.0 SDK(或其他版本):

sudo apt update
sudo apt install -y apt-transport-https
sudo apt update
sudo apt install -y dotnet-sdk-8.0

CentOS/RHEL用户可参考微软官方文档使用dnf或yum安装。

发布.NET应用

在开发机或CI环境中将项目发布为自包含或框架依赖的应用。

  • 进入项目目录,执行发布命令:

dotnet publish -c Release -r linux-x64 --self-contained false

上述命令生成框架依赖的发布包。若希望不依赖目标环境安装Runtime,设--self-contained true

发布后的文件位于bin/Release/net8.0/linux-x64/publish,将其复制到Linux服务器对应目录,例如/var/www/myapp

运行.NET应用

进入发布目录,直接运行程序。

cd /var/www/myapp
dotnet MyApp.dll

应用默认监听http://localhost:5000。可通过环境变量修改:

export ASPNETCORE_URLS="http://0.0.0.0:80"

千鹿Pr助手 千鹿Pr助手

智能Pr插件,融入众多AI功能和海量素材

千鹿Pr助手 128 查看详情 千鹿Pr助手

这样可在外部通过IP访问服务。

使用守护进程管理应用

推荐使用systemd确保应用后台运行并在异常退出时自动重启。

  • 创建服务配置文件:

sudo nano /etc/systemd/system/myapp.service

写入以下内容:

[Unit]
Description=My .NET Web Application
After=network.target

[Service]
WorkingDirectory=/var/www/myapp
ExecStart=/usr/bin/dotnet MyApp.dll
Restart=always
RestartSec=10
Environment=ASPNETCORE_ENVIRONMENT=Production

[Install]
WantedBy=multi-user.target
  • 启用并启动服务:

sudo systemctl daemon-reexec
sudo systemctl enable myapp
sudo systemctl start myapp

查看运行状态:sudo systemctl status myapp

反向代理配置(可选)

若使用Nginx作为前端代理,安装并配置:

sudo apt install nginx

编辑站点配置/etc/nginx/sites-*ailable/default,添加:

location / {
    proxy_pass http://127.0.0.1:5000;
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

保存后测试配置:sudo nginx -t,无误后重载:sudo systemctl reload nginx

基本上就这些。只要环境装好,发布清晰,配合systemd和Nginx,.NET应用在Linux上运行稳定可靠。

以上就是.NET怎么在Linux环境下部署和运行_Linux环境部署运行指南的详细内容,更多请关注其它相关文章!


# 操作指南  # 中文分词seo  # 流媒体网站建设方案  # wordpress做seo  # 共享农场如何推广营销  # 网上商店网站建设方案  # 如何优化企业网站服务  # 最有名的营销推广公司  # 金华百度网站优化推广  # 枣庄抖音seo价格多少  # 如何做seo详细点  # 将其  # 并在  # 适用于  # 推荐使用  # 自动重启  # linux  # 如何将  # 可通过  # 可选  # 微软  # microsoft  # 环境变量  # proxy  # ai  # ubuntu  # 端口  # app  # nginx  # 前端  # centos 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: HTML元素状态管理:根据DIV内容动态启用/禁用按钮  使用CSS更改登录屏幕输入框中PNG图标颜色的策略与局限性  如何使用Go和Martini动态服务解码后的图片  C++ typeid如何获取类型信息_C++ RTTI运行时类型识别用法  如何在离线环境中使用Composer_Composer离线安装依赖包的技巧与策略  动漫花园资源网使用步骤_动漫花园资源网下载流程  《北京人工智能产业白皮书(2025)》发布:全年核心产值预计突破 4500 亿元  C++如何操作注册表_Windows平台下C++读写注册表的API函数详解  ArrayList与LinkedList核心操作的Big-O复杂度分析  铁路12306官网网页端快速入口 铁路12306官方首页登录教程  漫蛙官网正版漫画入口 漫蛙2官方网页登录地址  动漫共和国防屏蔽稳定域名-动漫共和国官方正版直达通道  React列表渲染与独立状态管理:避免全局状态影响局部更新  mc.js游戏直达 mc.js网页免下载版本秒进地址  一加 Nord 5 隐私权限异常_一加 Nord 5 系统安全优化  Win10自动更新怎么关闭 Win10永久关闭系统更新的两种方法【终极版】  Yandex搜索引擎官网入口_俄罗斯Yandex免登录一键直达  c++项目目录结构应该如何组织_c++工程化项目结构规范  J*aScript中赋值与自增运算符的复杂交互与执行机制  深入理解J*a合成构造器:何时以及为何阻止其生成  163邮箱网页版入口导航平台 163邮箱网页版登录入口官网导航  企业名称高精度匹配:N-gram方法在结构相似性分析中的应用  在Qt QML中通过Python字典动态更新TextEdit内容的教程  如何创建独立于主系统的J*a运行环境_隔离式环境搭建策略  Yandex免登录网页版地址 Yandex搜索引擎官方访问入口  Go与Ruby之间实现AES加密互通:CFB模式下的密钥长度匹配策略  如何将HTML表格多行数据保存到Google Sheet  在J*a中如何使用Stream.map转换元素_Stream映射操作解析  红果短剧网页版官网入口 官方最新网址发布  解决Tabulator日期时间排序问题的专业指南  HTML转PPT成品工具有哪些?HTML网页转PPT成品工具大全  Spring Boot内嵌服务器与J*a EE全栈特性:选择与部署策略  CSS Flexbox如何实现多行排列_flex-wrap wrap自动换行显示  PHP高效扁平化嵌套数组:使用array_merge与数组解包操作符  Golang如何通过reflect操作map_Golang reflect map操作与遍历技巧  mcjs网页版在线存档 mcjs云存档登录入口  动漫岛观看全网网 动漫岛在线正版动漫入口  J*a实现学校排课程序_面向对象结构化项目示例  解决Python logging 中 datefmt 导致时间戳固定不变的问题  Safari自带网页翻译功能怎么用 无需插件轻松看懂外文网站【方法】  抖音小游戏合成大西瓜免费秒玩入口链接 抖音小游戏热门合集秒玩网站  Angular中父组件异步更新子组件复选框状态的实践指南  深入理解Go语言中Map值与方法接收器的交互:为什么需要临时变量  C++20的source_location是什么_C++在编译期获取源码位置信息用于日志和断言  一加Ace 6T实拍样张首次公布!李杰:主摄实力完全看齐4K档性能旗舰  大麦的“候补”是什么意思 大麦候补购票规则【详解】  菜鸟取件码是什么怎么查 最全查询渠道汇总  谷歌浏览器如何快速清除某个网站的数据_Chrome网站缓存清理方法  蛙漫限时开放最深处链接_蛙漫全站漫画会员同款秒开地址  AI抖音网页版免费视频入口 AI抖音网页端最新视频实时观看 

搜索