From 4d30f25b4723975433da2c16efc52092e6bdb861 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Wed, 4 Mar 2020 22:13:20 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=95=B0=E6=8D=AE=E5=BA=93=E5=81=A5?= =?UTF-8?q?=E5=BA=B7=E6=A3=80=E6=9F=A5=E5=A2=9E=E5=8A=A0=E5=8F=AF=E8=AF=BB?= =?UTF-8?q?=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Bootstrap.Admin/HealthChecks/DBHealthCheck.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/admin/Bootstrap.Admin/HealthChecks/DBHealthCheck.cs b/src/admin/Bootstrap.Admin/HealthChecks/DBHealthCheck.cs index 989df12a..461d6d64 100644 --- a/src/admin/Bootstrap.Admin/HealthChecks/DBHealthCheck.cs +++ b/src/admin/Bootstrap.Admin/HealthChecks/DBHealthCheck.cs @@ -1,4 +1,5 @@ using Bootstrap.DataAccess; +using Bootstrap.Security; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Diagnostics.HealthChecks; @@ -73,6 +74,15 @@ namespace Bootstrap.Admin.HealthChecks menusCount = MenuHelper.RetrieveMenusByUserName(userName)?.Count() ?? 0; dictsCount = DictHelper.RetrieveDicts()?.Count() ?? 0; healths = user != null && !string.IsNullOrEmpty(roles) && menusCount > 0 && dictsCount > 0; + + // 检查数据库是否可写 + var dict = new BootstrapDict() + { + Category = "DB-Check", + Name = "WriteTest", + Code = "1" + }; + if (DictHelper.Save(dict) && !string.IsNullOrEmpty(dict.Id)) DictHelper.Delete(new string[] { dict.Id }); } catch (Exception ex) { @@ -102,6 +112,7 @@ namespace Bootstrap.Admin.HealthChecks { data.Add("Exception", error.Message); + if (error.Message.Contains("SQLite Error 8: 'attempt to write a readonly database'.")) data.Add("解决办法", "更改数据库文件为可读,并授予进程可写权限"); if (error.Message.Contains("Could not load", StringComparison.OrdinalIgnoreCase)) data.Add("解决办法", "Nuget 引用相对应的数据库驱动 dll"); // UNDONE: Json 序列化循环引用导致异常 NET 5.0 修复此问题