☰
YiShaAdmin权限管理系统首次运行攻略:5个高频坑与部署自查清单
2026/10/21 1:28:06 网站建设 项目流程

YiShaAdmin权限管理系统首次运行攻略:5个高频坑与部署自查清单

【免费下载链接】YiShaAdmin基于 .NET Core MVC 的权限管理系统,代码易读易懂、界面简洁美观项目地址: https://gitcode.com/GitHub_Trending/yi/YiShaAdmin

YiShaAdmin 是一个基于 .NET Core MVC 的权限管理系统,内置员工、部门、角色、菜单、字典与定时任务等功能。读完本文,你能按顺序完成环境自查、数据库初始化、首次运行与首次登录,并拿到一份 5 个高频坑的快速排障卡,让后台框架一次跑通。

🧭 部署前自查清单:逐项核对 5 项

部署权限管理系统之前,先花几分钟把下面 5 项过一遍,能避开多数启动问题:

检查项推荐值或状态查看方式不满足的后果
.NET SDK 版本与你使用的分支一致(本仓库默认分支为 netcoreapp3.1)dotnet --list-sdks编译失败,提示缺少运行时框架
数据库服务MySQL 或 SQL Server 正在运行用客户端工具手动连接登录页报数据库连接错误
连接字符串与真实库类型、账号一致打开YiSha.Web/YiSha.Admin.Web/appsettings.json应用能启动但页面查不到数据
端口占用5000(Web)、5001(WebApi)空闲浏览器访问对应端口启动时提示端口被占用
依赖包全部恢复成功dotnet restore输出无错误编译中断、引用缺失

✅ 跑通后台框架:配置数据库并用 dotnet run 启动

第 1 步,建库。SQL Server 用户建一个名为YsData的空库(与默认配置一致);MySQL 用户建一个名为YiShaAdmin的空库。

第 2 步,执行初始化脚本。脚本放在 Document/DatabaseScript 目录,结构脚本与数据脚本都要执行,数据脚本里才有管理员账号和菜单。一句话:脚本会先删表再建表(目录内_readme.txt有明确提示),有真实数据的库千万不要执行。

mysql -u root -p < Document/DatabaseScript/mysql.sql

之后用同样方式执行mysql_data.sql;SQL Server 用户在 SSMS 中依次执行sqlserver.sql和sqlserver_data.sql。

第 3 步,核对连接配置。Web 项目appsettings.json默认DBProvider为"SqlServer"、库名YsData。改用 MySQL 时,把DBProvider改为"MySql",并把DBConnectionString换成你自己的地址与账号密码。

第 4 步,启动项目。

dotnet restore dotnet run

进程固定监听 5000 端口(见项目Program.cs中的UseUrls配置),浏览器打开http://localhost:5000即出现登录页。需要接口端时,进入YiSha.Web/YiSha.Admin.WebApi目录再执行一次dotnet run,它监听 5001 端口。

📎 用默认账号登录并核对菜单权限

登录页标题下方直接标注了默认账号:用户名admin、密码123456,验证码为 3 位字符,输错点击图片可刷新。

登录成功后进入仪表盘,左侧是「单位组织」「系统管理」「系统工具」三大模块:

初始化是否到位,核对三处即可:

  • 「系统管理」→「菜单管理」:菜单树应完整,为空说明数据脚本没导入。
  • 「系统管理」→「角色管理」:应存在「管理员」角色且已分配菜单权限。
  • 「单位组织」→「员工管理」:admin 账户应挂在「管理员」角色下,角色字段位于编辑表单中:

常见误操作:改完 admin 密码没记新密码;给 admin 账户取消勾选「管理员」角色后再也登不进完整界面(只能靠数据库重置角色)。

🛠️ 踩坑速查卡:5 个高频坑

坑 1:dotnet run 提示运行时框架缺失或 SDK 版本不匹配

  • 症状:启动命令直接报错,或编译阶段就失败。
  • 最可能原因:本仓库默认分支目标框架为netcoreapp3.1,你机器上装的 SDK 不是这个版本。
  • 修复:
    1. 查看本机已装 SDK:
dotnet --list-sdks
  1. 没有 3.1 就安装 .NET Core 3.1 SDK;或按 README 的版本对照表切到YiShaAdmin-Net7、YiShaAdmin-Net6等分支。

坑 2:应用能启动,页面却报数据库连接错误

  • 症状:浏览器能打开,但登录框或页面弹出数据库相关报错。
  • 最可能原因:① 初始化脚本没执行,库和表不存在;②DBProvider与实际连接字符串不匹配。
  • 修复:
    1. 建库后按顺序执行结构脚本 + 数据脚本。
    2. 在appsettings.json核对DBProvider与DBConnectionString两项(Web 项目默认SqlServer+YsData)。
    3. 用同一套账号先手动连库验证,再启动应用。

坑 3:admin/123456 登录提示用户名或密码错误

  • 症状:账号密码确认无误,登录始终被拒。
  • 最可能原因:只执行了结构脚本,没执行数据脚本,SysUser 表里没有 admin 记录。
  • 修复:
    1. 补跑对应的数据脚本(mysql_data.sql或sqlserver_data.sql)。
    2. 核对 3 位验证码,看不清就点击图片刷新再输。

坑 4:登录后菜单为空,或部分按钮置灰

  • 症状:能登录,但左侧菜单树为空,或某些操作按钮看不到。
  • 最可能原因:① 菜单与角色授权数据未导入;② 当前账户没挂在「管理员」角色下。
  • 修复:
    1. 到「菜单管理」确认树完整,再到「角色管理」给「管理员」角色勾选全部菜单权限。
    2. 回「员工管理」编辑账户重新勾选角色。系统权限细到按钮级权限标识,缺按钮权限就不显示该按钮。

坑 5:定时任务建好了,却一次都没执行

  • 症状:任务已创建,执行日志始终为空。
  • 最可能原因:任务状态没有置为「启用」。
  • 修复:
    1. 「系统工具」→「定时任务」,把状态开关拨到启用。
    2. 先用简单频率验证 Cron 表达式(每 5 分钟一次:0 0/5 * * * ?),再去「定时任务日志」看结果与下次执行时间。
    3. 仍不执行时重启dotnet run,并确认服务器时间正确。

⚙️ 生产加固三件套:缓存、连接池、多环境

缓存:默认CacheProvider为"Memory",开发够用;生产改为"Redis",并把RedisConnectionString指向自己的地址(配置默认值为127.0.0.1:6379):

docker run -d -p 6379:6379 redis:alpine

连接池:直接在连接字符串末尾追加连接池参数,例如pooling=true;max pool size=20;。WebApi 项目的 MySQL 连接字符串默认就带这套参数,可参照它的写法。

多环境配置:项目按环境加载appsettings.{Environment}.json,仓库里已有appsettings.Development.json,照此再建一份生产配置即可:

export ASPNETCORE_ENVIRONMENT=Production

建议:敏感配置不进代码,全部收敛到按环境的配置文件中。

📋 排障三问与场景组合速览

按三问自查链走一遍,大部分故障能当场定位:

自查问题检查方式通过标准
能启动吗?执行dotnet run,看终端输出无报错,提示监听 5000 端口
能连上数据库吗?打开浏览器,尝试登录登录框不出现数据库连接错误
能登录吗?用 admin/123456 登录进入仪表盘,左侧菜单树完整

不同场景的推荐组合:

场景推荐组合注意事项
个人开发测试Memory 缓存 + 本地单库数据会丢,别存重要内容
小团队协作SQL Server + Memory 缓存定期备份数据库
生产环境MySQL + Redis 缓存上线前改掉 admin 默认密码
高并发数据库读写分离 + Redis架构复杂,先压测再上

🏁 收尾:要做的与不要做的清单

按「跑起来 → 登录 → 核对权限」的顺序走完,这套权限管理系统就算正式上线可用;多数故障本质是配置和数据脚本问题,按顺序排查不会绕远路。

  • ✅ 生产环境先改掉 admin 的默认密码
  • ✅ 定期清理登录、操作、Api 三类日志表
  • ✅ 配置差异放进各环境的 appsettings 文件
  • ❌ 不在有真实数据的库上执行初始化脚本
  • ❌ 不把连接字符串和密码硬编码进代码
  • ❌ 不把 5000、5001 端口直接暴露公网,前面挂反向代理

要新增业务模块时,照抄「员工管理」这类现成模块的 Entity、Service、BLL、Controller、View 五层结构,替换字段定义即可,代码风格保持一致,后续维护会轻松很多。

【免费下载链接】YiShaAdmin基于 .NET Core MVC 的权限管理系统,代码易读易懂、界面简洁美观项目地址: https://gitcode.com/GitHub_Trending/yi/YiShaAdmin

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询