Files
EIS-dotnet/MIGRATION.md
T
biss e3c04dad8a 本轮迁移已完成,生产运行链路现已切换为纯 ASP.NET Core 10。
主要完成:
补齐招生学校计划、投档审核、报到、扫码、补录等原生接口。
新增 SQLite/MySQL 空库初始化及默认审批流、号码规则。
删除 Node 兼容代理,未知 API 直接返回原生 404。
Docker、Compose、Gitea CI 全部切换到 Eis.Web.dll。
CKEditor 已固化到 Web 发布资源,不再依赖 node_modules。
新增纯 .NET 冒烟脚本:[smoke-dotnet-native.ps1 (line 1)](C:/Users/BI/Documents/EIS-dotnet/scripts/smoke-dotnet-native.ps1:1)。
迁移状态已更新:[MIGRATION.md (line 14)](C:/Users/BI/Documents/EIS-dotnet/MIGRATION.md:14)。
容器入口见 [Dockerfile (line 31)](C:/Users/BI/Documents/EIS-dotnet/Dockerfile:31)。
2026-07-23 15:14:42 +08:00

50 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ASP.NET Core 10 迁移
系统业务 API、认证、管理后台、审批流、考务编排、招生录取、Excel、文书和缓存均已迁移到 ASP.NET Core 10。生产宿主和容器不再启动或转发到 Node.js;旧 `.mjs` 服务端源码仅保留作历史行为对照。
## 完成情况
- [x] ASP.NET Core 10 分层解决方案与前端静态资源托管
- [x] 公开首页、公告、招生公示和 HMAC 文书验真
- [x] 登录、自主注册、Session、TOTP 和考生中心
- [x] 管理后台、审批流、考务编排和成绩管理
- [x] 指标资格、招生账户、志愿、计划、投档、录取、报到和退档
- [x] ClosedXML 文件导入导出、文书模板和 Redis/本机缓存
- [x] SQLite / MySQL 自动建库和基础配置初始化
- [x] 容器入口切换及 Node.js 后端运行依赖移除
## 本地运行
需要 .NET 10 SDK
```powershell
dotnet restore .\Eis.slnx
dotnet run --project .\src\Eis.Web\Eis.Web.csproj
```
浏览器访问 <http://127.0.0.1:4173>。首次启动空库时,系统会建立 v20 结构、基础规则、默认审批流程和初始超级管理员。
- `GET /health/live`ASP.NET Core 宿主存活检查。
- `GET /health/migration`:原生功能、认证状态后端和缓存状态;`legacyApiRemoved` 固定为 `true`
- 未注册的 `/api/*` 返回原生 `404`,不再转发旧服务。
`appsettings.json` 已默认启用全部原生域,无需再设置 `AUTH_NATIVE_ENABLED``CANDIDATE_NATIVE_ENABLED``ADMIN_NATIVE_*` 迁移开关。Redis 为可选项;单实例使用进程内会话和有界本机缓存,多实例部署应配置 Redis 共享会话。
## 已迁移的文件与文书能力
- ClosedXML 处理班级、管理员、报名号、考生、缴费、考点考场、成绩、志愿、录取、报到和正式录取名册工作簿。
- 成绩导入先预检再确认,报到导入按招生学校和可维护批次限定范围。
- 录取通知书模板由原生接口保存;成绩单、准考证和录取通知书的数据及防伪验真均由 ASP.NET Core 提供。
- CKEditor 浏览器资源已随 Web 项目发布,不依赖 `node_modules`
## 验证
```powershell
dotnet test .\Eis.slnx
dotnet publish .\src\Eis.Web\Eis.Web.csproj -c Release
pwsh.exe -NoLogo -NoProfile -NonInteractive -File .\scripts\smoke-dotnet-native.ps1
docker compose up --build --detach
```
`scripts/smoke-dotnet-native.ps1` 会发布并启动纯 .NET 产物,在操作系统临时目录创建一次性 SQLite 数据库,检查健康状态、首页、CKEditor、原生登录和未知 API 404 后清理。`scripts/smoke-dotnet-migration.ps1` 保留为迁移期 Node/.NET 行为对照工具,不属于生产启动链路。