在京东云的 Windows 主机上运行 .NET Core 应用,需要进行以下运行环境配置,以确保应用能够正常部署和运行:
一、基础环境准备
1. 操作系统要求
- 推荐使用 Windows Server 2016、2019 或 2022。
- 确保系统为 64 位版本(x64),因为 .NET Core 主要支持 x64 架构。
2. 安装 .NET Core 运行时(Runtime)或 SDK
根据你的应用需求选择:
- 仅运行应用:安装 .NET Core Runtime(推荐)
- 需要编译或开发:安装 .NET Core SDK
✅ 注意:确保安装的版本与你的应用目标框架一致(如 .NET 6、.NET 7、.NET 8 等)。
下载地址:
- .NET 下载页面(Microsoft 官网)
例如,若你的应用是基于 .NET 6 开发的,则安装:
.NET 6.0 Runtime(或 Hosting Bundle,推荐)
二、推荐安装:.NET Core Hosting Bundle(关键步骤)
如果你计划通过 IIS 托管 .NET Core 应用(推荐方式),必须安装 .NET Core Hosting Bundle。
功能包括:
- ASP.NET Core 模块(ANCM)
- .NET Core Runtime
- IIS 集成支持
安装步骤:
- 下载对应版本的 Hosting Bundle(如 v6.0、v7.0、v8.0)
- 以管理员身份运行安装程序
- 安装完成后,重启 IIS 或服务器:
iisreset
🔗 下载地址:https://dotnet.microsoft.com/download/dotnet → 找到对应版本 → Hosting Bundle
三、IIS 配置(如使用 IIS 托管)
1. 启用 IIS 角色
- 打开“服务器管理器” → 添加角色和功能
- 勾选:
- Web 服务器 (IIS)
- 应用程序开发中的 ASP.NET 4.8(即使使用 .NET Core,也需要部分组件)
- 常见 HTTP 功能、静态内容、默认文档等
2. 创建网站
- 将发布后的 .NET Core 应用文件(
publish文件夹)上传到服务器某个目录(如C:inetpubmyapp) - 在 IIS 管理器中:
- 添加网站
- 设置物理路径为应用目录
- 绑定端口(如 80 或 443)
- 应用程序池设置:
- .NET CLR 版本:无托管代码
- 管道模式:集成
3. 检查 web.config
发布后的 web.config 应包含 ASP.NET Core 模块配置,例如:
<aspNetCore processPath="dotnet" arguments=".YourApp.dll" stdoutLogEnabled="false" stdoutLogFile=".logsstdout" />
四、防火墙与安全组配置(京东云控制台)
1. 安全组规则
在京东云控制台中,为该 Windows 主机配置安全组,开放必要的端口:
- HTTP:端口 80
- HTTPS:端口 443
- 自定义端口(如应用直接监听 5000):开放对应端口
2. Windows 防火墙
确保 Windows 防火墙允许应用使用的端口通信。
五、其他可选配置
1. 环境变量设置
根据应用需求,设置环境变量,如:
ASPNETCORE_ENVIRONMENT=Production- 数据库连接字符串等
可在系统环境变量中设置,或在 web.config 中配置。
2. 日志与监控
- 启用 stdout 日志(在
web.config中配置) - 使用 Windows 事件日志、Application Insights 等监控应用运行状态
3. 使用进程守护(可选)
若不使用 IIS,可使用:
Windows 服务托管应用(通过NSSM或sc命令)Task Scheduler或第三方工具守护进程
六、验证部署
- 启动应用或网站
- 浏览器访问:
http://<公网IP>或绑定的域名 - 检查日志文件(
logs目录)排查错误
总结:关键步骤清单
| 步骤 | 内容 |
|---|---|
| ✅ 1 | 安装匹配版本的 .NET Core Runtime 或 SDK |
| ✅ 2 | 强烈推荐安装 .NET Core Hosting Bundle |
| ✅ 3 | 配置 IIS(启用角色、创建网站、设置应用池) |
| ✅ 4 | 上传发布后的应用文件(dotnet publish -c Release) |
| ✅ 5 | 配置京东云安全组开放端口 |
| ✅ 6 | 测试访问并查看日志 |
如有使用反向(如 Nginx)、HTTPS 证书、域名绑定等需求,可进一步配置。
如需帮助,可提供你的 .NET Core 版本和部署方式(IIS/自托管),我可以给出更具体的配置示例。
ECLOUD博客