Windows Server IIS部署ASP.NET网站:从安装到HTTPS全流程教程
IIS 部署 ASP.NET 网站完整流程
IIS(Internet Information Services)是 Windows Server 内置的 Web 服务器,与 ASP.NET 深度集成,是在 Windows 环境部署 .NET Web 应用的标准方案。
一、安装 IIS 和 ASP.NET 支持
在 PowerShell(管理员)中执行:
# 安装 IIS 及常用功能
Install-WindowsFeature -Name Web-Server, Web-Asp-Net45, Web-Net-Ext45, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Mgmt-Console -IncludeManagementTools
# 验证安装
Get-WindowsFeature Web-Server安装 ASP.NET Core Hosting Bundle(支持 .NET Core / .NET 5+ 应用):
- 访问
https://dotnet.microsoft.com/download - 下载最新版本的 ASP.NET Core Runtime - Windows Hosting Bundle
- 安装完成后重启 IIS:
iisreset
二、发布 ASP.NET Core 应用
在开发机上发布应用(自包含部署,无需目标服务器安装 .NET):
dotnet publish -c Release -r win-x64 --self-contained true -o ./publish将 publish 文件夹内容通过 RDP 剪贴板、FTP 或 SCP 上传到服务器,例如放在 C:\inetpub\wwwroot\myapp\。
三、在 IIS 中创建网站
- 打开 IIS 管理器(运行 →
inetmgr) - 左侧展开服务器 → 右键"网站" → "添加网站"
- 填写:
- 网站名称:myapp
- 物理路径:
C:\inetpub\wwwroot\myapp - 绑定类型:http,端口:80,主机名:your-domain.com
- 点击确定
为 ASP.NET Core 应用添加 web.config
在应用目录创建 web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath=".\YourApp.exe"
stdoutLogEnabled="false"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>四、申请 Let's Encrypt 免费 SSL 证书
Windows 上使用 win-acme 工具申请 Let's Encrypt 证书并自动配置 IIS:
- 下载 win-acme:
https://www.win-acme.com/ - 解压后以管理员身份运行
wacs.exe - 选择 N(新建证书)→ 选择 IIS 站点 → 选择你的网站
- 输入邮箱,同意条款,自动申请证书并配置 HTTPS 绑定
win-acme 会自动创建计划任务,证书到期前自动续期,无需手动操作。
五、常见问题排查
| 错误现象 | 可能原因 | 解决方法 |
|---|---|---|
| 502.5 进程失败 | 未安装 Hosting Bundle 或版本不匹配 | 重新安装对应版本 Hosting Bundle 后 iisreset |
| 403.14 目录列表被拒绝 | 默认文档配置问题 | IIS 管理器 → 默认文档 → 添加应用入口文件名 |
| 应用池停止 | 应用启动报错导致应用池崩溃 | 开启 stdout 日志查看具体报错 |
| 证书申请失败 | 域名未解析或 80 端口防火墙未放行 | 确认 DNS 和防火墙设置后重试 |
总结
IIS 部署 ASP.NET Core 的完整流程:安装 IIS + Hosting Bundle → 发布应用到服务器目录 → IIS 创建网站并绑定域名 → 用 win-acme 申请 Let's Encrypt 证书配置 HTTPS → 设置自动续期。整个过程约 30–60 分钟,完成后应用可正常对外提供 HTTPS 服务。
需要 Windows Server 运行环境,IDC.Net 香港云服务器支持 Windows Server 系统,CN2 GIA 直连大陆延迟低,支付宝付款,免 KYC 实名。
版权声明:
作者:后浪云
链接:https://idc.net/help/442554/
文章版权归作者所有,未经允许请勿转载。
THE END
