Files
biss b139834396 已完成迁移验收和清理。
删除全部 Node.js 后端、.mjs 测试、辅助脚本、package*.json、node_modules 和迁移对照工具。
浏览器前端保留并迁入 [Eis.Web/wwwroot](C:/Users/BI/Documents/EIS-dotnet/src/Eis.Web/wwwroot/index.html),统一改为 .js 模块。
修复一个隐藏遗漏:.NET 仍依赖 schema.mjs,且 MySQL 结构解析可能被转义反引号截断。现已改为原生 [SQLite SQL](C:/Users/BI/Documents/EIS-dotnet/src/Eis.Infrastructure/Data/Schema.sqlite.sql) 和 [MySQL SQL](C:/Users/BI/Documents/EIS-dotnet/src/Eis.Infrastructure/Data/Schema.mysql.sql) 资源。
更新了 [DatabaseInitializer.cs](C:/Users/BI/Documents/EIS-dotnet/src/Eis.Infrastructure/Data/DatabaseInitializer.cs)、项目配置、README 和迁移文档。
data 目录和现有数据库未修改;测试仅使用系统临时 SQLite 数据库。
2026-07-23 17:49:57 +08:00

55 lines
3.1 KiB
Markdown
Raw Permalink 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。生产宿主和容器只运行 .NET;旧 Node.js 服务端源码、依赖、测试和迁移对照工具已从仓库移除。
## 完成情况
- [x] ASP.NET Core 10 分层解决方案与前端静态资源托管
- [x] 公开首页、公告、招生公示和 HMAC 文书验真
- [x] 登录、自主注册、Session、TOTP 和考生中心
- [x] 管理后台、审批流、考务编排和成绩管理
- [x] 指标资格、招生账户、志愿、计划、投档、录取、报到和退档
- [x] ClosedXML 文件导入导出、文书模板和 Redis/本机缓存
- [x] SQLite / MySQL 自动建库和基础配置初始化
- [x] SQLite / MySQL 结构改为 .NET 内嵌原生 SQL 资源
- [x] 可发布的 .NET 数据库重建与 1200 人演示数据导入工具
- [x] 容器入口切换及 Node.js 后端运行依赖移除
- [x] 浏览器静态资源归档到 `src/Eis.Web/wwwroot`
- [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 和全部浏览器资源均位于 `src/Eis.Web/wwwroot`,发布时由 Web SDK 自动收集。
## 验证
```powershell
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 后清理。