跳到主要内容
版本:3.0.0

Windows 应用部署

Aegis 3.x 应用在 Windows 上的发布与 IIS 托管方式。不讨论 Aegis.Documents 体系依赖的浏览器、LibreOffice、Python 等组件环境。

如果应用启用了文档处理能力,请在完成应用部署后,再补充阅读部署菜单中的 文档组件运行环境

适用范围

  • Aegis 3.x
  • .NET 8
  • Windows Server + IIS

推荐部署流程

1. 生成发布产物

在构建机执行:

dotnet publish YourApp.csproj -c Release -o .\\publish

publish\\ 目录整体复制到目标服务器,例如:

D:\\sites\\your-app

2. 准备 Windows 运行环境

目标服务器建议先确认:

  • IIS 已安装
  • 已安装 .NET 8 Hosting Bundle
  • 应用使用的站点目录和日志目录具有可读写权限

3. 在 IIS 中创建站点

推荐步骤:

  1. 创建或选择一个应用程序池
  2. 创建站点或应用,并指向发布目录
  3. 绑定端口、域名或证书

建议的应用程序池基础设置:

  • .NET CLR 版本无托管代码
  • 托管管道模式Integrated
  • 启用 32 位应用程序:仅在确实依赖 32 位组件时开启

更细的调优参数,继续参考 IIS 应用程序池配置

4. 准备生产配置

至少确认以下文件或配置项已经到位:

  • appsettings.Production.json
  • 连接串、Redis、配置中心等外部依赖
  • ASPNETCORE_ENVIRONMENT=Production

如果部署后发现配置未生效,优先检查站点环境变量、配置文件位置和发布目录是否一致。

验收清单

  • IIS 站点可以正常启动
  • 站点首页、Swagger 或业务接口可以访问
  • 应用日志正常输出
  • 生产配置已生效
  • 应用程序池回收后可以自动恢复

常见问题

站点启动后返回 500

优先检查:

  • .NET 8 Hosting Bundle 是否安装
  • 发布目录是否完整
  • appsettings.Production.json 是否存在
  • 站点用户对发布目录是否有权限

应用程序池频繁回收

先确认是否是应用本身异常退出,再检查应用程序池的回收策略。具体参数建议见 IIS 应用程序池配置

应用可以访问,但文档处理失败

这通常不是 IIS 部署本身的问题,而是文档组件运行环境未准备完整。请继续阅读:

  • 文档组件环境准备
  • Windows 文档组件离线准备
  • 文档组件 Docker 环境