Files
EIS-dotnet/MIGRATION.md
T
biss f3ffc18aae 新增 [Eis.Tools (line 1)](C:/Users/BI/Documents/EIS-dotnet/src/Eis.Tools/Program.cs:1),支持 database init/reset/seed。
数据库维护、安全校验和事务逻辑位于 [DatabaseMaintenanceService.cs (line 1)](C:/Users/BI/Documents/EIS-dotnet/src/Eis.Infrastructure/Data/DatabaseMaintenanceService.cs:1)。
内置完整演示数据:1200 名考生、10800 条成绩、2404 条招生记录。
删除旧 import-test-data.mjs 和 reset-dev-database.mjs 运行入口。
Docker 镜像同时包含 Web 和 /app/tools/Eis.Tools.dll。
[package.json (line 11)](C:/Users/BI/Documents/EIS-dotnet/package.json:11) 原数据库命令已改为调用 .NET。
新增统一发布脚本:[publish.ps1 (line 1)](C:/Users/BI/Documents/EIS-dotnet/scripts/publish.ps1:1)。
2026-07-23 16:25:40 +08:00

3.1 KiB
Raw Blame History

ASP.NET Core 10 迁移

系统业务 API、认证、管理后台、审批流、考务编排、招生录取、Excel、文书和缓存均已迁移到 ASP.NET Core 10。生产宿主和容器不再启动或转发到 Node.js;旧 .mjs 服务端源码仅保留作历史行为对照。

完成情况

  • ASP.NET Core 10 分层解决方案与前端静态资源托管
  • 公开首页、公告、招生公示和 HMAC 文书验真
  • 登录、自主注册、Session、TOTP 和考生中心
  • 管理后台、审批流、考务编排和成绩管理
  • 指标资格、招生账户、志愿、计划、投档、录取、报到和退档
  • ClosedXML 文件导入导出、文书模板和 Redis/本机缓存
  • SQLite / MySQL 自动建库和基础配置初始化
  • 可发布的 .NET 数据库重建与 1200 人演示数据导入工具
  • 容器入口切换及 Node.js 后端运行依赖移除

本地运行

需要 .NET 10 SDK

dotnet restore .\Eis.slnx
dotnet run --project .\src\Eis.Web\Eis.Web.csproj

浏览器访问 http://127.0.0.1:4173。首次启动空库时,系统会建立 v20 结构、基础规则、默认审批流程和初始超级管理员。

  • GET /health/liveASP.NET Core 宿主存活检查。
  • GET /health/migration:原生功能、认证状态后端和缓存状态;legacyApiRemoved 固定为 true
  • 未注册的 /api/* 返回原生 404,不再转发旧服务。

appsettings.json 已默认启用全部原生域,无需再设置 AUTH_NATIVE_ENABLEDCANDIDATE_NATIVE_ENABLEDADMIN_NATIVE_* 迁移开关。Redis 为可选项;单实例使用进程内会话和有界本机缓存,多实例部署应配置 Redis 共享会话。

已迁移的文件与文书能力

  • ClosedXML 处理班级、管理员、报名号、考生、缴费、考点考场、成绩、志愿、录取、报到和正式录取名册工作簿。
  • 成绩导入先预检再确认,报到导入按招生学校和可维护批次限定范围。
  • 录取通知书模板由原生接口保存;成绩单、准考证和录取通知书的数据及防伪验真均由 ASP.NET Core 提供。
  • CKEditor 浏览器资源已随 Web 项目发布,不依赖 node_modules

验证

dotnet test .\Eis.slnx
pwsh.exe -NoLogo -NoProfile -NonInteractive -File .\scripts\publish.ps1
dotnet .\artifacts\publish\tools\Eis.Tools.dll database seed --sqlite --path .\artifacts\demo.sqlite --dry-run
pwsh.exe -NoLogo -NoProfile -NonInteractive -File .\scripts\smoke-dotnet-native.ps1
docker compose up --build --detach

Eis.Tools.dll 提供 database init/reset/seed;破坏性命令要求 --confirm-target,SQLite 自动保留原库备份,MySQL 拒绝系统库和未显式强制覆盖的非演示业务数据。scripts/smoke-dotnet-native.ps1 会发布并启动纯 .NET 产物,在操作系统临时目录创建一次性 SQLite 数据库,检查健康状态、首页、CKEditor、原生登录和未知 API 404 后清理。scripts/smoke-dotnet-migration.ps1 保留为迁移期 Node/.NET 行为对照工具,不属于生产启动链路。