YiShaAdmin 权限管理系统部署指南:4 个高频卡点一次打通
【免费下载链接】YiShaAdmin基于 .NET Core MVC 的权限管理系统,代码易读易懂、界面简洁美观项目地址: https://gitcode.com/GitHub_Trending/yi/YiShaAdmin
YiShaAdmin 是一个基于 .NET Core MVC 的开源权限管理系统,内置员工管理、部门组织、角色权限、菜单配置和定时任务等模块,适合用来快速搭建网站后台、OA、CRM 这类系统的底座。这篇文章围绕 YiShaAdmin 部署 展开,带你走完环境准备、数据库初始化、登录排障到权限配置的完整流程,第一次接触这个项目的同学照着做就能把系统跑起来。
动手前,先确认这 5 项
- .NET SDK 与项目匹配:默认分支基于 .NET Core 3.1,仓库同时提供 7.0 / 6.0 / 2.2 分支,按需选择
- MySQL 或 SQL Server 数据库服务正在运行
- 代码已克隆到本地:
git clone https://gitcode.com/GitHub_Trending/yi/YiShaAdmin - 数据库连接字符串已按本机账号密码改好
- 5000(Web)、5001(Api)端口未被其他程序占用
清单里的每一项花不了几分钟,但能避开后面绝大多数坑,建议真的逐项过一遍再启动。
启动项目:版本报错和端口占用的快速处理
代码克隆下来后,在 Web 项目目录执行dotnet restore,再dotnet run就能看到效果。如果卡住了,多数是下面两种情况。
SDK 版本对不上
启动时提示找不到运行时或版本不匹配,大概率是本机装的 .NET SDK 和项目要求的不一致。先执行dotnet --list-sdks看看本地都有什么版本;如果你用的是 3.1 默认分支,就装一个 3.1 的 SDK,或者干脆切到 7.0 / 6.0 分支,装对应的新版本即可。💡 团队开发时建议在仓库根目录放一个 global.json 锁定 SDK 版本,省得每个人环境都不一样。
端口被占用
启动日志里出现端口已被占用的提示时,说明 5000 或 5001 已经有程序在用。最简单的办法是改端口:打开 YiSha.Web/YiSha.Admin.Web/Properties/launchSettings.json,把 applicationUrl 里的端口换成空闲的再启动。
数据库连不上:登录页卡住的排查路径
登录时报数据库相关错误
看到登录页提示数据库连接失败、或者应用启动即退出,先别怀疑代码,顺手检查一下配置文件:打开 YiSha.Web/YiSha.Admin.Web/appsettings.json,确认 SystemConfig 里的 DBProvider(SqlServer 或 MySql)和 DBConnectionString 跟你本机的数据库类型、账号密码一致,这是新手最容易写错的一处。
确认配置没问题后,检查数据库本身建好了没有。进入 Document/DatabaseScript/ 目录,按数据库类型执行对应的脚本(MySQL 执行 mysql.sql 和 mysql_data.sql,SQL Server 执行 sqlserver.sql 和 sqlserver_data.sql),库表结构和初始数据就都有了。💡 开发环境可以先用简单密码验证连通性,跑通之后再换成强密码;⚠️ 生产环境切记不要用默认密码。
登录后菜单为空:权限配置的三步修复
菜单空白或按钮点不动
登录成功了,但左侧菜单栏是空的,或者部分按钮是灰的,说明数据层面或权限层面有缺口。建议按这个顺序查:先确认菜单数据已导入,没有的话重新执行一遍初始化数据脚本;再进入"系统管理 → 角色管理",给"管理员"角色把菜单权限全部勾上保存。
还差最后一步:进入"单位组织 → 员工管理",找到你自己的账号点"编辑",在角色栏勾选"管理员",保存后重新登录,菜单就会正常加载出来。
⚠️ 这个系统的权限控制精确到按钮级别,某个按钮不可用时,多半是该按钮的权限标识没分配给当前角色,回角色管理里补勾一下即可。
定时任务没动静:按这个顺序检查
配了定时任务却从未执行、执行日志一片空白时,先看任务状态是不是"启用",再核对 Cron 表达式(六段式,比如0 0/5 * * * ?表示每 5 分钟一次)。表达式没问题的话,确认服务器系统时间没有跑偏。💡 建议先建一个"每分钟执行一次"的简单测试任务,验证调度本身正常后,再替换成正式的业务任务,排障思路会清晰很多。
任务逻辑集中在 YiSha.Business/YiSha.Business.AutoJob/ 模块,如果测试任务依然不跑,重启一次 Web 服务再观察"下次执行时间"有没有更新,基本就能定位到是表达式、状态还是服务本身的问题。
进阶配置与故障速查
跑通之后,这几个开关可以按需打开,都是配置文件里的一两行改动。
缓存、连接池与多环境
- Redis 缓存:把 appsettings.json 里的 CacheProvider 改为 Redis 并填上 RedisConnectionString,生产环境比默认的内存缓存更稳。
- 连接池:在数据库连接字符串末尾追加
Pooling=true;Min Pool Size=5;Max Pool Size=100;,减少频繁建连的开销。 - 多环境配置:分别建 appsettings.Development.json 和 appsettings.Production.json,用 ASPNETCORE_ENVIRONMENT 环境变量切换,开发生产互不干扰。
症状速查表
| 症状 | 首查项 | 备选方案 |
|---|---|---|
| 启动报 SDK 版本错误 | dotnet --list-sdks的输出版本 | 安装匹配 SDK 或切换对应版本分支 |
| 登录页报数据库连接失败 | appsettings.json 的 DBConnectionString | 重新执行 Document/DatabaseScript/ 下的初始化脚本 |
| 登录后菜单空白 | 菜单数据是否导入、角色权限是否勾选 | 编辑本人账号重新分配"管理员"角色 |
| 定时任务不执行 | 任务状态与 Cron 表达式 | 先建"每分钟执行"的测试任务验证调度 |
| 高并发下页面变慢 | CacheProvider 配置 | 切换 Redis 并追加连接池参数 |
登录进去看到框架介绍页的那一刻,YiShaAdmin 就算真正跑起来了,后面的定制都在这套骨架上生长。
【免费下载链接】YiShaAdmin基于 .NET Core MVC 的权限管理系统,代码易读易懂、界面简洁美观项目地址: https://gitcode.com/GitHub_Trending/yi/YiShaAdmin
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考