在京东云的 Windows 主机上运行 .NET Core 应用,需要进行以下运行环境配置。具体步骤和依赖项如下:
一、确认系统环境
-
操作系统版本要求
- 推荐使用 Windows Server 2016 / 2019 / 2022 64位版本。
- 确保系统已安装最新的补丁和更新。
-
管理员权限
- 安装运行时或 SDK 时需要管理员权限。
二、安装 .NET Core 运行时或 SDK
根据你的应用是发布为 框架依赖(Framework-Dependent) 还是 自包含(Self-Contained),选择是否需要安装运行时。
情况1:应用为框架依赖(推荐用于节省空间)
你需要在主机上安装对应的 .NET 运行时。
- 下载并安装 .NET 运行时(Runtime):
- 访问微软官方下载页面:https://dotnet.microsoft.com/download/dotnet
- 选择对应版本(如 .NET 6.0、.NET 7.0、.NET 8.0)
- 下载 Windows x64 Hosting Bundle(推荐)
⚠️ Hosting Bundle 包含:
- .NET 运行时(Runtime)
- ASP.NET Core 模块(用于 IIS 托管)
- IIS 集成支持
情况2:应用为自包含(Self-Contained)
- 无需在主机上安装 .NET 运行时,因为所有依赖已打包进应用。
- 但需要确保目标平台架构匹配(如 win-x64)。
三、配置 IIS(如果使用 IIS 托管)
-
启用 IIS 角色
- 打开“服务器管理器” → “添加角色和功能”
- 勾选:
- Web 服务器(IIS)
- 应用程序开发中的:
- .NET Extensibility
- ASP.NET(根据版本选择)
- ISAPI 扩展
- CGI(可选)
-
安装 ASP.NET Core 模块(ANCM)
- 安装 Hosting Bundle 后会自动安装 ANCM。
- 验证方法:在 IIS 的“模块”中查看是否存在
AspNetCoreModule或AspNetCoreModuleV2。
-
创建网站
- 在 IIS 中添加网站,指向你的应用发布目录(如
publish文件夹)。 - 设置应用程序池:
- 名称:自定义(如 MyAspNetCoreApp)
- .NET CLR 版本:无托管代码
- 管道模式:集成
- 启动 32 位应用程序:否(除非是 32 位应用)
- 在 IIS 中添加网站,指向你的应用发布目录(如
-
配置 web.config(自动生成或手动)
<configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /> </handlers> <aspNetCore processPath="dotnet" arguments=".YourApp.dll" stdoutLogEnabled="false" stdoutLogFile=".logsstdout" hostingModel="inprocess" /> </system.webServer> </location> </configuration>注意:
hostingModel可选inprocess(IIS 内进程)或outofprocess(独立进程)。
四、防火墙与端口配置
- 打开京东云控制台,配置 安全组规则:
- 允许入站流量访问端口(如 80、443、或自定义端口如 5000)。
- 在 Windows 防火墙中允许对应端口(如果使用非标准端口)。
五、其他依赖(视应用而定)
- 数据库连接:安装 SQL Server 客户端工具或配置连接字符串。
- Redis / RabbitMQ 等中间件:确保网络可达或本地安装。
- 证书(HTTPS):导入 SSL 证书到服务器,并在 IIS 中绑定。
六、启动与测试
- 启动 IIS 网站或直接运行命令:
dotnet YourApp.dll --urls http://localhost:5000 - 浏览器访问公网 IP 或域名测试。
七、日志与监控
- 启用 stdout 日志(在
web.config中设置stdoutLogEnabled="true") - 使用 Windows 事件查看器排查错误
- 考虑集成日志框架(如 Serilog、NLog)
总结:关键配置清单
| 项目 | 是否必需 | 说明 |
|---|---|---|
| .NET 运行时 / SDK | ✅ | 根据发布模式选择 |
| IIS + ANCM | ✅(如用 IIS) | 推荐 Hosting Bundle |
| 应用程序池配置 | ✅ | 无托管代码,集成模式 |
| 安全组放行端口 | ✅ | 京东云控制台设置 |
| web.config | ✅ | 正确指向 DLL 和模块 |
| 权限设置 | ✅ | 确保 IIS_IUSRS 有读取权限 |
如有需要,也可使用 Windows 服务 或 Docker 容器 部署,但 IIS 是最常见方式。
如需进一步帮助,可提供应用的发布方式(框架依赖/自包含)和部署目标(IIS/命令行/服务),我可以给出更具体配置。
云计算导航