服务器上如何部署.net网站?.net网站部署教程

在服务器上部署 .NET 网站(通常指 ASP.NET Core 应用)是一个标准且高效的过程,由于 .NET Core/.NET 5+ 是跨平台的,你可以选择 Windows Server 或 Linux (Ubuntu/CentOS) 作为部署环境。

以下是完整的部署指南,分为 准备阶段、Linux 部署(推荐)、Windows 部署 和 生产环境最佳实践。

TeamSpeak服务器搭建教程!安装客户端到部署服务端全过程,还能打包给好友们解压即用!
加载中
TeamSpeak服务器搭建教程!安装客户端到部署服务端全过程,还能打包给好友们解压即用!

第一步:准备工作

  1. 发布应用 (Publish)
    在本地开发机器或 CI/CD 流水线中,将项目发布为独立部署包。

    # 在终端执行
    dotnet publish -c Release -o ./publish
    • -c Release:发布发布版本。
    • -o ./publish:输出到 publish 文件夹。
    • 如果希望包含运行时(无需在服务器安装 .NET SDK/Runtime),可以添加 -r linux-x64 等运行时标识符。
  2. 准备服务器环境

    • 确保服务器已安装 .NET Runtime(注意:生产环境只需 Runtime,不需要 SDK)。
    • 确保服务器防火墙开放了相应的端口(如 80, 443, 5000 等)。

第二步:Linux 服务器部署 (Ubuntu/CentOS)

这是目前最主流、性能最好的部署方式。

上传文件

使用 scp 或 rsync 将发布文件夹上传到服务器:

scp -r ./publish user@your-server-ip:/var/www/yourapp

安装 .NET Runtime (如果未安装)

以 Ubuntu 22.04 为例(.NET 8):

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
sudo apt-get update
sudo apt-get install -y apt-transport-https
sudo apt-get update
sudo apt-get install -y aspnetcore-runtime-8.0

服务器上如何部署.net网站?.net网站部署教程

创建 Systemd 服务 (推荐)

使用 systemd 管理应用进程,确保应用开机自启、崩溃后自动重启。

创建服务文件:

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

根据实际路径修改):

[Unit]
Description=My .NET Web App
After=network.target
[Service]
WorkingDirectory=/var/www/yourapp
ExecStart=/usr/bin/dotnet /var/www/yourapp/YourApp.dll
Restart=always
# 如果应用崩溃,5秒后重启
RestartSec=5
# 指定用户运行(可选,建议创建专用用户)
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target

启动并启用服务:

sudo systemctl daemon-reload
sudo systemctl start yourapp
sudo systemctl enable yourapp
# 查看日志
sudo journalctl -u yourapp -f

第三步:Windows Server 部署

安装 .NET Runtime

从微软官网下载并安装 .NET Runtime(非 SDK)。

上传文件

将 publish 文件夹复制到服务器,C:inetpubwwwrootYourApp。

使用 IIS 托管 (最常见)

  1. 打开 IIS 管理器。
  2. 创建一个新的 网站,指向你的物理路径。
  3. 确保安装了 ASP.NET Core Hosting Bundle(它包含 .NET Runtime 和 IIS 模块)。
  4. 在 IIS 中,确保网站绑定正确的端口(如 80 或 443)。
  5. 应用程序池设置:
    • 将“.NET 无托管代码”改为 “无托管代码” (No Managed Code)。
    • 确保应用池身份有权限读取该文件夹。

使用 Kestrel + 进程守护 (替代 IIS)

服务器上如何部署.net网站?.net网站部署教程

如果你不想用 IIS,可以在 Windows 上使用 nssm (Non-Sucking Service Manager) 将 dotnet.exe 注册为 Windows 服务。


第四步:反向代理与 HTTPS (生产环境必备)

无论使用 Linux 还是 Windows,不建议直接暴露 Kestrel/IIS 到公网,应使用 Nginx 或 Apache 作为反向代理,处理 SSL 证书、静态文件缓存和负载均衡。

示例:Nginx 配置 (Linux)

安装 Nginx 后,编辑配置文件:

sudo nano /etc/nginx/sites-available/yourapp
server {
    listen 80;
    server_name yourdomain.com;
    location / {
        proxy_pass http://localhost:5000; # 你的 .NET 应用监听端口
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

启用配置并重启 Nginx:

sudo ln -s /etc/nginx/sites-available/yourapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

HTTPS 配置

使用 Certbot 免费获取 Let’s Encrypt 证书:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com

第五步:最佳实践与注意事项

  1. 环境变量

    • 生产环境务必设置 ASPNETCORE_ENVIRONMENT=Production。
    • 这会禁用详细的错误页面,提升安全性。
    • 敏感信息(如数据库连接字符串)应通过 环境变量 或 Azure Key Vault / AWS Secrets Manager 管理,不要硬编码在

      服务器上如何部署.net网站?.net网站部署教程

      appsettings.json 中。

  2. 日志记录

    • 使用 Serilog、NLog 或内置的 ILogger 将日志输出到文件、Seq、ELK 或 Application Insights。
    • 不要依赖控制台输出进行生产调试。
  3. 静态文件

    • 确保 app.UseStaticFiles() 在 Program.cs 中正确配置。
    • 如果前端是 Vue/React,确保构建后的 wwwroot 文件夹已包含在前端构建产物中。
  4. 健康检查 (Health Checks)

    • 在 Program.cs 中添加健康检查端点,供负载均衡器或监控系统探测应用是否存活。
      builder.Services.AddHealthChecks();
      app.MapHealthChecks("/health");
  5. 数据库迁移

    • 确保在应用启动时执行数据库迁移(EF Core Migrations),或在部署脚本中手动运行 dotnet ef database update。
  6. 监控

    • 集成 Application Insights (Azure) 或 Prometheus + Grafana 进行性能监控和异常追踪。

常见问题排查

  • 502 Bad Gateway:通常是 Kestrel 未启动、端口被占用或防火墙阻止,检查 systemctl status yourapp 和 netstat -tulpn。
  • 权限问题:确保运行 .NET 应用的用户有权限读取发布文件夹和写入日志/临时文件。
  • 时区问题:Linux 服务器默认 UTC,如需本地时间,需设置 TZ 环境变量或修改系统时区。

如果你能提供具体的服务器类型(Windows/Linux)和 .NET 版本,我可以给出更精确的命令和配置。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%b8%8a%e5%a6%82%e4%bd%95%e9%83%a8%e7%bd%b2-net%e7%bd%91%e7%ab%99%ef%bc%9f-net%e7%bd%91%e7%ab%99%e9%83%a8%e7%bd%b2%e6%95%99%e7%a8%8b/

赞 (0)
服务器渗透测试怎么做?渗透测试流程及报告模板
上一篇 2026年7月9日 23:39
python中position参数怎么用?python position参数详解
下一篇 2026年7月9日 23:39

相关推荐

  • it公论建立在哪个网站?,网站IP防护怎么做?

    it公论是一个独立的科技媒体站点,它建立在自有域名和服务器之上,并非依托某个现成的博客平台;而需要防护的网站IP地址,指的是直接暴露在公网、承载网站源站数据的服务器IP,这是DDoS攻击和恶意扫描的首要目标,it公论到底建立在什么网站关于it公论,很多老听众会把它和WordPress、知乎专栏搞混,it公论是典……

    2026年8月12日
    700
  • 你知道仿站需要多少钱吗,仿站制作全流程是怎样的?

    仿站制作网的核心价值在于用可控成本快速获得高转化率的商业网站,选择时应当聚焦源码的可维护性与服务方的技术支持深度,仿站制作网哪家好?从三个维度精准筛选企业主在寻找仿站团队时,最常问的是“仿站制作网哪家好”,这个问题没有统一答案,但我们可以通过三个硬性指标把选择范围从几十家缩小到三五家,代码质量与SEO兼容性仿站……

    2026年7月17日
    800
  • AI大模型后端开发难吗,如何入门学习路径

    AI大模型后端开发的核心在于构建高并发、低延迟的推理服务集群,通过模型量化、动态批处理及GPU资源调度技术,实现从训练到部署的全链路优化,而非单纯调用API,大模型后端架构的核心组件解析构建一个能够支撑百万级并发的AI后端系统,首先需要对底层架构有清晰的认知,这不仅仅是写几个接口那么简单,而是涉及计算、存储、网……

    2026年6月14日
    2700
  • 大模型LoRA微调到底需要多大显存?LoRA微调显存计算与优化方案

    大模型LoRA微调所需的显存大小并非固定值,通常取决于模型参数量、批次大小及优化技术,主流7B模型在开启Q-LoRA时最低仅需约6GB-8GB显存,而全参数微调则需24GB以上,具体配置需根据硬件条件与精度需求权衡,在本地部署大模型或进行私有化微调的场景中,显存往往是制约开发效率的最大瓶颈,许多初学者容易陷入……

    2026年6月17日
    3200
  • iOS SDK如何正确配置,iOS SDK配置步骤是什么?

    配置iOS SDK的核心在于正确设置Xcode开发环境并选择合适的依赖管理工具,无论是CocoaPods、Swift Package Manager还是手动集成,关键在于理解项目结构、依赖关系和权限声明,iOS SDK配置步骤:从零开始集成无论你接的是推送SDK、支付SDK还是地图SDK,配置流程都遵循一套固定……

    2026年7月31日
    1300
  • 防ddos吗?服务器防ddos攻击怎么设置

    防DDoS攻击不仅取决于服务商提供的带宽储备,更依赖于多层级的流量清洗策略与实时响应机制,普通网站建议采用云端高防IP或CDN加速服务,而核心业务系统则需结合本地硬件防火墙与云清洗联动方案,在数字化时代,分布式拒绝服务攻击(DDoS)已成为威胁网络稳定性的头号杀手,它不像黑客入侵那样窃取数据,而是通过海量虚假请……

    2026年7月6日
    9100
  • 大模型推荐领域微调怎么做?推荐系统微调优化技巧

    大模型在推荐领域的微调,核心在于利用高质量用户行为数据对基座模型进行指令对齐与偏好优化,从而显著提升推荐系统的个性化精度与业务转化率,推荐系统早已不再是简单的协同过滤或点击率预估,随着大语言模型(LLM)展现出强大的语义理解与逻辑推理能力,将其引入推荐领域成为行业共识,直接调用通用大模型无法满足垂直场景的精准需……

    2026年6月17日
    2400
  • 最新的大模型ai有哪些?大模型ai哪个好用

    最新的大模型AI已从单纯的技术竞赛转向垂直场景的深度落地,其核心竞争力在于多模态理解能力、自主智能体(Agent)工作流以及针对企业私有数据的低成本微调,普通用户应优先选择集成度高的平台,企业则需关注数据隐私与算力成本平衡,当前的大模型技术生态已经发生了本质变化,早期的“通用问答”模式正在被“任务执行”模式取代……

    2026年6月13日
    2200
  • 什么是IPv4及IPv6双栈,私网双栈怎么配置?

    IPv4/IPv6双栈是当前网络过渡期最成熟的方案,它让企业私网同时承载两种协议流量,业务迁移IPv6时无需中断,这也是私网双栈网络的核心价值所在,什么是IPv4/IPv6双栈网络双栈简单说就是一台设备或一个网络同时运行IPv4和IPv6两套协议栈,每个接口配两个地址,两种流量各自独立转发,私网双栈则是在企业内……

    2026年8月17日
    2000
  • iframe嵌套子页面如何实现,有什么作用?

    iframe嵌套子页面与前端安全:跨域通信与沙箱隔离的正确实现方式iframe嵌套子页面是前端开发中的核心能力,但跨域限制、安全漏洞与性能问题并存,本文从工程实践出发,拆解沙箱属性配置、postMessage通信机制、加载时机优化三大模块,解决同域与跨域场景下的常见痛点,iframe嵌套子页面怎么传参:post……

    2026年8月21日
    1800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注