首页
/ ASP.NET Core 应用部署到 IIS 完全指南

ASP.NET Core 应用部署到 IIS 完全指南

2025-07-06 04:16:26作者:滑思眉Philip

前言

在 Windows 服务器环境中,IIS (Internet Information Services) 是最常用的 Web 服务器之一。本文将详细介绍如何将 ASP.NET Core 应用部署到 IIS 服务器上,涵盖从环境准备到最终部署的全过程。

环境准备

服务器端要求

  1. 操作系统:Windows Server 2012 或更高版本

  2. IIS 角色:确保已安装 Web Server (IIS) 服务器角色

    • 通过"服务器管理器"添加角色和功能
    • 必须包含以下功能:
      • 静态内容
      • 默认文档
      • 目录浏览
      • HTTP 错误
      • ASP.NET(如果使用 WebForms 或 MVC)
      • ISAPI 扩展
      • ISAPI 过滤器
  3. .NET Core 托管捆绑包:这是 ASP.NET Core 应用在 IIS 中运行的关键组件

    • 包含 .NET Core 运行时、.NET Core 库和 ASP.NET Core 模块
    • 安装后需要重启服务器或执行以下命令:
      net stop was /y
      net start w3svc
      

开发环境要求

  1. .NET Core SDK:与你的应用版本匹配的 SDK
  2. 开发工具:Visual Studio 或 VS Code(可选)

IIS 站点配置

创建应用文件夹

  1. 在服务器上选择一个位置创建应用文件夹
    • 例如:C:\inetpub\wwwroot\MyAspNetCoreApp
    • 确保该文件夹有适当的权限(稍后会详细介绍)

配置 IIS 站点

  1. 打开 IIS 管理器
  2. 在"连接"面板中,右键点击"站点"文件夹
  3. 选择"添加网站"
  4. 填写配置信息:
    • 站点名称:例如"MyAspNetCoreApp"
    • 物理路径:指向刚才创建的文件夹
    • 绑定
      • 类型:http 或 https
      • IP 地址:通常选择"全部未分配"
      • 端口:80(http)或 443(https)
      • 主机名:如果有域名则填写

安全提示:避免使用顶级通配符绑定(如 http://*:80/),这会带来安全风险。应使用明确的域名。

应用池配置

  1. 为站点创建专用应用池
  2. 设置.NET CLR 版本为"无托管代码"
  3. 托管管道模式:集成
  4. 身份验证:根据需要配置

应用发布与部署

应用发布方式

使用 Visual Studio 发布

  1. 右键点击项目 → 选择"发布"
  2. 选择"文件夹"发布目标
  3. 设置发布路径:
    • 可以直接发布到服务器共享文件夹
    • 或发布到本地文件夹后手动复制到服务器

使用 .NET CLI 发布

dotnet publish --configuration Release

发布后的文件位于 bin/Release/{TARGET FRAMEWORK}/publish 目录下。

文件部署

  1. 将发布文件夹中的所有内容复制到 IIS 站点文件夹
  2. 确保文件权限正确:
    • 应用池用户(默认为 ApplicationPoolIdentity)需要读取和执行权限
    • 如果应用需要写入日志或上传文件,还需要写入权限

常见问题排查

502.5 进程失败错误

  1. 检查是否安装了正确版本的 .NET Core 托管捆绑包
  2. 确认应用池的.NET CLR版本设置为"无托管代码"
  3. 检查事件查看器中的详细错误信息

403 禁止访问

  1. 检查文件夹权限
  2. 确认默认文档设置正确
  3. 检查应用池身份是否有足够权限

404 未找到

  1. 检查应用是否已正确发布到目标文件夹
  2. 确认 IIS 模块映射正确
  3. 检查 web.config 文件是否存在且配置正确

高级配置建议

数据保护配置

对于生产环境,建议配置数据保护密钥持久化:

<configuration>
  <system.web>
    <machineKey validationKey="..." decryptionKey="..." validation="SHA1" decryption="AES" />
  </system.web>
</configuration>

HTTPS 配置

  1. 获取并安装 SSL 证书
  2. 在 IIS 中配置 HTTPS 绑定
  3. 强制 HTTPS 重定向(在 Startup.cs 中配置)

性能优化

  1. 启用动态内容压缩
  2. 配置输出缓存
  3. 调整应用池回收设置

结语

通过本文的步骤,你应该已经成功将 ASP.NET Core 应用部署到 IIS 服务器上。IIS 提供了强大的托管能力,结合 ASP.NET Core 的跨平台特性,可以构建高性能、可靠的 Web 应用。

对于生产环境,请务必考虑安全性配置,包括但不限于 HTTPS、数据保护和适当的权限设置。定期检查服务器日志和应用性能,确保应用稳定运行。