当前位置:首页 > 技术教程 > 正文

如何将ASP.NET部署到云服务器?阿里云ECS一键发布教程

将 ASP.NET 应用发布到云服务器(以阿里云 ECS + Windows Server 为例)的完整流程如下:


本地准备阶段

  1. 项目发布配置

    # 在 Visual Studio 中: # 1. 右键项目 -> 发布 # 2. 选择发布目标:文件夹 # 3. 配置发布设置: - 部署模式:框架依赖(减小体积)或独立 - 目标运行时:win-x64 # 4. 点击"发布"生成文件到本地目录
  2. 打包文件

    • 将发布目录(如 binReleasenet8.0publish)压缩为 ZIP 文件


服务器环境配置(Windows Server)

  1. 远程登录服务器

    • 使用 远程桌面连接 (mstsc) 登录云服务器
    • 输入公网 IP、用户名(默认 Administrator)、密码
  2. 安装运行环境

    • .NET Runtime/Hosting Bundle
      • 下载地址:https://dotnet.microsoft.com/download/dotnet
      • 根据项目版本选择安装(ASP.NET Core 8.0)
    • IIS 安装: # PowerShell 管理员模式 Install-WindowsFeature Web-Server # 安装 IIS Install-WindowsFeature Web-Asp-Net45 # 安装 ASP.NET 4.x(传统应用需要)
  3. 启用 IIS 功能

    如何将ASP.NET部署到云服务器?阿里云ECS一键发布教程 第1张

    • 打开 服务器管理器 > 添加角色和功能
    • 勾选:
      • .NET Extensibility 4.5
      • ASP.NET 4.5
      • ISAPI 扩展/过滤器


部署应用到服务器

  1. 上传文件到服务器

    • 通过 远程桌面 直接复制粘贴 ZIP 文件
    • 或使用 FTP 工具(如 FileZilla)上传
  2. 解压文件

    • 解压 ZIP 到指定目录(如 C:MyApp)
    • IIS 配置

      1. 打开 IIS 管理器
      2. 右键 网站 > 添加网站
        • 站点名称:MyApp
        • 物理路径:C:MyApp(指向解压目录)
        • 绑定:
          • 类型:http
          • IP 地址:全部未分配 或 服务器内网 IP
          • 端口:80(HTTP)或自定义端口
          • 应用程序池设置
            • 选择站点对应的应用池
            • .NET CLR 版本:.NET CLR v4.0(传统 ASP.NET)或 无托管代码(ASP.NET Core)
            • 托管管道模式:集成
            • 权限配置

              • 右键站点文件夹 > 属性 > 安全
              • 添加用户 IIS_IUSRS 并赋予 读取/执行 权限

      防火墙与安全组配置

      1. 云服务器安全组(阿里云/西西云控制台)

        如何将ASP.NET部署到云服务器?阿里云ECS一键发布教程 第2张

        • 添加入站规则:
          • 协议:TCP
          • 端口:80(HTTP)、443(HTTPS)
          • 源:0.0.0/0(允许公网访问)
      2. Windows 防火墙

        New-NetFirewallRule -DisplayName "Allow HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow


      测试访问

      1. 浏览器访问 http://服务器公网IP
      2. 若出现 5 错误
        • 检查是否安装对应版本的 .NET Hosting Bundle
        • 重启 IIS:iisreset 命令


      高级配置(可选)

      1. 域名绑定

        • IIS 中编辑站点绑定,添加域名
        • 配置 DNS 解析到服务器公网 IP
      2. HTTPS 配置

        • 申请 SSL 证书(阿里云/Let’s Encrypt)
        • IIS 导入证书并绑定 443 端口
        • 进程守护(ASP.NET Core)

          # 创建 Windows 服务 sc create MyApp binPath= "C:MyAppMyApp.exe" sc start MyApp

        • 常见问题解决

          • 403 禁止访问:检查文件夹权限(IIS_IUSRS 需有读取权限)
          • 19 错误:安装缺失的 IIS 模块(如 URL Rewrite)
          • 端口占用:netstat -ano | findstr :80 查找占用进程


          跨平台方案(Linux 服务器)

          若部署到 Linux(如 Ubuntu)

          1. 安装 .NET SDK/Runtime:

            wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb sudo apt update sudo apt install aspnetcore-runtime-8.0
          2. 使用 Nginx 反向代理:

            server { listen 80; location / { proxy_pass http://localhost:5000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; } }
          3. 守护进程:

            # 使用 systemd 创建服务 sudo nano /etc/systemd/system/myapp.service [Unit] Description=My ASP.NET App [Service] WorkingDirectory=/var/www/myapp ExecStart=/usr/bin/dotnet /var/www/myapp/MyApp.dll Restart=always [Install] WantedBy=multi-user.target


          按照以上步骤操作,即可将 ASP.NET 应用成功部署到云服务器,部署后建议使用工具(如 Azure DevOps、Jenkins)实现自动化发布。

          如何将ASP.NET部署到云服务器?阿里云ECS一键发布教程 第3张

0