Giter Club home page Giter Club logo

ncf's Issues

docker build failed

[root@master201 Senparc.Web]# docker build -t ncf .
Sending build context to Docker daemon 29.56MB
Step 1/17 : FROM microsoft/aspnetcore:2.0 AS base
2.0: Pulling from microsoft/aspnetcore
55cbf04beb70: Pull complete
2ad9fb8b9d3d: Pull complete
7debd121b442: Pull complete
76fbad01d0bd: Pull complete
1cba46fa0c00: Pull complete
Digest: sha256:8bd7808981568a92b7f1d0aa4bab07ef811e6417898847d9caf698a4a788ab11
Status: Downloaded newer image for microsoft/aspnetcore:2.0
---> db030c19e94b
Step 2/17 : WORKDIR /app
---> Running in 15eb47da4bfd
Removing intermediate container 15eb47da4bfd
---> 1ef2b6863834
Step 3/17 : EXPOSE 80
---> Running in fdea09de6630
Removing intermediate container fdea09de6630
---> 91f286eec28e
Step 4/17 : FROM microsoft/aspnetcore-build:2.0 AS build
2.0: Pulling from microsoft/aspnetcore-build
55cbf04beb70: Already exists
1607093a898c: Pull complete
9a8ea045c926: Pull complete
d4eee24d4dac: Pull complete
9996a3dbf48f: Pull complete
e626b8d73a89: Pull complete
4d833e0fa218: Pull complete
1eebc8a262e7: Pull complete
4867c32ba582: Pull complete
c0ece037099c: Pull complete
Digest: sha256:ab861527a8485e7df91069e80cd7a94237c22995f13494c2cccc071b76e347f0
Status: Downloaded newer image for microsoft/aspnetcore-build:2.0
---> 06a6525397c2
Step 5/17 : WORKDIR /src
---> Running in 4ece2cccc655
Removing intermediate container 4ece2cccc655
---> 3b90570690c9
Step 6/17 : COPY Senparc.Core.sln ./
COPY failed: stat /var/lib/docker/tmp/docker-builder849824203/Senparc.Core.sln: no such file or directory

后台新增管理员问题

后台添加新管理员账号“未赋角色”权限,直接用新管理员账号在后台登录出现找不到页面(404),
NCF01
然后直接在地址栏输入“https://localhost:44311/Admin/”打开,却可以打开后台默认首页
NCF02
首页的下面“功能模块”部分又显示了已安装的模块,然后点击“模块”下方的详细页面“按钮”也可以打开模块的详细页面
NCF03
没有相应“角色”权限的空账号又可以操作模块详细页面上的两个“功能”按钮哦
应该是页面权限没有配置到,之前有跟苏总提过,好像没有更新到,
空“角色”账号登录后在地址栏直接输入后台其他页面地址打开,都是出现找不到页面(404),没有其他提示,不知道是不是“故意”的,呵呵

修改管理员密码成功后无法登录,或者修改密码失败

1.在后台修改密码后无法登录,一直提示密码错误,调试发现是密码更新函数 UpdateObject() 调用 GetSHA512Password()函数时传入的usePasswordToken参数是false,但是初始创建和登录时此参数都是使用的 true,修改统一传递 true 参数可解决问题

627750b3ea6ef7f45ada10174883025

2.某些情况下,GetSHA512Password()函数返回的是使用GetHmacSha256()加密的密码,此时加密字符串长度是64位,加上固定字符串"g01",需要最少67位长度,但是数据库(SQLServer)里(SQLServer)Password字段长度是50。修改此字段长度可解决问题

e37ee3cf129a1226ed070e5a38568ca

a3b8d0a590fb6f899d358ba38382497

接口异常:/api/Senparc.Areas.Admin/ModuleAppservice/Areas.Admin_ModuleApService.GetunInstalledlistAsync

ncf 运行环境说明

  • ncf 数据库采用【postgres:15.1-alpine】镜像部署的 docker 环境;
  • 采用前后端分离方式启动运行。

触发异常操作说明

数据库、后端服务均启动成功运行后,再启动前端项目,点击菜单扩张管理/模块管理页面,接口报错。

ncf 相关异常信息

  • vue 前端管理系统(front-end\admin-main),点击扩展模块/模块管理菜单时,出现接口异常,如下:

1

  • 对应 back-end 项目中的 swagger 接口,点击调用接口耗时严重;

2

  • swagger 接口响应异常信息
System.NotSupportedException: Serialization and deserialization of 'System.Action`1[[AutoMapper.Profile, AutoMapper, Version=7.0.1.0, Culture=neutral, PublicKeyToken=be96cd2c38ef1005]]' instances are not supported. The unsupported member type is located on type 'System.Action`1[AutoMapper.Profile]'. Path: $.Data.AutoMapMappingConfigs.
 ---> System.NotSupportedException: Serialization and deserialization of 'System.Action`1[[AutoMapper.Profile, AutoMapper, Version=7.0.1.0, Culture=neutral, PublicKeyToken=be96cd2c38ef1005]]' instances are not supported.
   at System.Text.Json.Serialization.Converters.UnsupportedTypeConverter`1.Write(Utf8JsonWriter writer, T value, JsonSerializerOptions options)
   at System.Text.Json.Serialization.JsonConverter`1.TryWrite(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.Serialization.Converters.IEnumerableDefaultConverter`2.OnWriteResume(Utf8JsonWriter writer, TCollection value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.Serialization.JsonCollectionConverter`2.OnTryWrite(Utf8JsonWriter writer, TCollection value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.Serialization.JsonConverter`1.TryWrite(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.GetMemberAndWriteJson(Object obj, WriteStack& state, Utf8JsonWriter writer)
   at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryWrite(Utf8JsonWriter writer, T value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.Serialization.JsonConverter`1.TryWrite(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.Serialization.Converters.ListOfTConverter`2.OnWriteResume(Utf8JsonWriter writer, TCollection value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.Serialization.JsonCollectionConverter`2.OnTryWrite(Utf8JsonWriter writer, TCollection value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.Serialization.JsonConverter`1.TryWrite(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.GetMemberAndWriteJson(Object obj, WriteStack& state, Utf8JsonWriter writer)
   at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryWrite(Utf8JsonWriter writer, T value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.Serialization.JsonConverter`1.TryWrite(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.Serialization.JsonConverter`1.WriteCore(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state)
   --- End of inner exception stack trace ---
   at System.Text.Json.ThrowHelper.ThrowNotSupportedException(WriteStack& state, NotSupportedException ex)
   at System.Text.Json.Serialization.JsonConverter`1.WriteCore(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.Serialization.JsonConverter`1.WriteCoreAsObject(Utf8JsonWriter writer, Object value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.JsonSerializer.WriteCore[TValue](JsonConverter jsonConverter, Utf8JsonWriter writer, TValue& value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.JsonSerializer.WriteStreamAsync[TValue](Stream utf8Json, TValue value, JsonTypeInfo jsonTypeInfo, CancellationToken cancellationToken)
   at System.Text.Json.JsonSerializer.WriteStreamAsync[TValue](Stream utf8Json, TValue value, JsonTypeInfo jsonTypeInfo, CancellationToken cancellationToken)
   at System.Text.Json.JsonSerializer.WriteStreamAsync[TValue](Stream utf8Json, TValue value, JsonTypeInfo jsonTypeInfo, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonOutputFormatter.WriteResponseBodyAsync(OutputFormatterWriteContext context, Encoding selectedEncoding)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResultFilterAsync>g__Awaited|30_0[TFilter,TFilterAsync](ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultFilters()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
   at Senparc.Xncf.Tenant.OHS.Remote.TenantMiddleware.InvokeAsync(HttpContext context)
   at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

HEADERS
=======
Accept: application/json, text/plain, */*
Connection: close
Host: localhost:5000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.62
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1laWQiOjEsIm5iZiI6MTY3MDI1Mzg5NywiZXhwIjoxNjcwNzkzODk3LCJpYXQiOjE2NzAyNTM4OTcsImlzcyI6Imh0dHBzOi8vbG9jYWxob3N0OjQ0MzExIiwiYXVkIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NDQzMTEifQ.flZzSdAlxSYJv1fQJSYvz2e9J5wZfzyP9yw3bJDQt_Q
Cookie: userInfo=%7B%22id%22%3A%2200000000-0000-0000-0000-000000000000%22%2C%22code%22%3A%220112222111%22%2C%22fullName%22%3A%22superadmin%22%2C%22userName%22%3A%22superadmin%22%2C%22ip%22%3A%22192.168.1.146%22%2C%22isExpire%22%3Afalse%2C%22loginTime%22%3A%222022-11-30%2020%3A17%3A41%22%2C%22nickName%22%3A%22superadmin%22%2C%22token%22%3A%22MDY3OCs5NjY1ZWU1MTliNGQtYTYwYS02MDM0LWI0ZTgtODY3MzUyNGY%3D%22%2C%22extData%22%3A%22%22%2C%22productCode%22%3A%22MES%22%7D; redirectUrl=%2Fpps%2Fpps-entry%2FAssemblyShop; .AspNetCore.Antiforgery.nTsCt8sg9tA=CfDJ8LwPEyRAHkdAt0b1jNh6H_zSLNom3PS78Lrh73xG05etXUEzj7fjUqUDZlu4PC42B3vjL6XuEShT_Rn8wt4IhOAIi13Cjkc2dNZlb-WrjxfIx3f1cxu36Yl7cwNQzBk4vbvNAa0yrk8AXxcuBof6z84; .AspNetCore.NcfAdminAuthorizeScheme=CfDJ8LwPEyRAHkdAt0b1jNh6H_ygrzFoqXZDDi4qayfXqS7XbCIWByLmb4RTQNmVkU4wkX_2gMibgaKeh_xDXrzU5syJJ1qiR-FUd_eAehCKog5cLv4wGa9ZyOjeZbXVSPXXwC7I2rNuhEqCGmwL_nnOD1xxZ9aiifLNWelqdHgP633kXp0J1ZcJ_nDlOwPkLT2nn7bCBrAmbYAZOJBdna6cqe4Mve5l-DMoDzljAudPUemJMoRxpgCoOK3LAbaNpmaKv9dS1UslbTjWttmo7tXniFbjY7LANYvSLvagizJBf2Eoa0efShz3mcvHQPx0gkwhnlgggWdtX9K-KZbOIgYp8rCdXFddD34ziYPg6cadGgA1Y6og1-EJjLLndoDUVJX-dgKv-zuSyv4q8VP9QHri7vLt4J6tan6g2c2r_kHojrMli8GWuV1lszKBhU4vYSMnBMoVMopQjZu729RV9fk0L7RAe-l98rZnCur5zkrvfn1GnFCt01ts2wY_0W7VmT8UXYKfCDwzuMvb23Se4kcBsRJrZqsDf9bkB8XU8AvBWVvwt_qWhhkpV1Dfd-sFa_KZGw; Admin-Token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1laWQiOjEsIm5iZiI6MTY3MDI1Mzg5NywiZXhwIjoxNjcwNzkzODk3LCJpYXQiOjE2NzAyNTM4OTcsImlzcyI6Imh0dHBzOi8vbG9jYWxob3N0OjQ0MzExIiwiYXVkIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NDQzMTEifQ.flZzSdAlxSYJv1fQJSYvz2e9J5wZfzyP9yw3bJDQt_Q; Admin-Role=[%22administrator%22]
Referer: http://localhost:9527/
x-forwarded-host: localhost:9527
x-forwarded-proto: http
x-forwarded-port: 9527
x-forwarded-for: 127.0.0.1
sec-fetch-dest: empty
sec-fetch-mode: cors
sec-fetch-site: same-origin
sec-ch-ua-platform: "Windows"
sec-ch-ua-mobile: ?0
sec-ch-ua: "Microsoft Edge";v="107", "Chromium";v="107", "Not=A?Brand";v="24"
  • back-end 项目控制台异常信息
warn: Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter[1]
      An error occurred while trying to create an XmlSerializer for the type 'Senparc.Ncf.Core.AppServices.AppResponseBase`1[[System.Collections.Generic.List`1[[Senparc.Areas.Admin.Domain.Dto.SystemConfigDto, Senparc.Areas.Admin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]'.
      System.InvalidOperationException: There was an error reflecting type 'Senparc.Ncf.Core.AppServices.AppResponseBase`1[System.Collections.Generic.List`1[Senparc.Areas.Admin.Domain.Dto.SystemConfigDto]]'.
       ---> System.InvalidOperationException: There was an error reflecting property 'Data'.
       ---> System.InvalidOperationException: Member AppResponseBaseOfListOfSystemConfigDto.Data of type System.Collections.Generic.List`1[Senparc.Areas.Admin.Domain.Dto.SystemConfigDto] hides base class member AppResponseBase.Data of type System.Object. Use XmlElementAttribute or XmlAttributeAttribute to specify a new name.
         at System.Xml.Serialization.StructMapping.FindDeclaringMapping(MemberMapping member, StructMapping& declaringMapping, String parent)
         at System.Xml.Serialization.XmlReflectionImporter.InitializeStructMembers(StructMapping mapping, StructModel model, Boolean openModel, String typeName, RecursionLimiter limiter)
         --- End of inner exception stack trace ---
         at System.Xml.Serialization.XmlReflectionImporter.InitializeStructMembers(StructMapping mapping, StructModel model, Boolean openModel, String typeName, RecursionLimiter limiter)
         at System.Xml.Serialization.XmlReflectionImporter.ImportStructLikeMapping(StructModel model, String ns, Boolean openModel, XmlAttributes a, RecursionLimiter limiter)
         at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel model, String ns, ImportContext context, String dataType, XmlAttributes a, Boolean repeats, Boolean openModel, RecursionLimiter limiter)
         --- End of inner exception stack trace ---
         at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel model, String ns, ImportContext context, String dataType, XmlAttributes a, Boolean repeats, Boolean openModel, RecursionLimiter limiter)
         at System.Xml.Serialization.XmlReflectionImporter.ImportElement(TypeModel model, XmlRootAttribute root, String defaultNamespace, RecursionLimiter limiter)
         at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(Type type, XmlRootAttribute root, String defaultNamespace)
         at System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace)
         at System.Xml.Serialization.XmlSerializer..ctor(Type type)
         at Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter.CreateSerializer(Type type)
warn: Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter[1]
      An error occurred while trying to create an XmlSerializer for the type 'Senparc.Ncf.Core.AppServices.AppResponseBase`1[[Senparc.Areas.Admin.Domain.Dto.SystemConfigDto, Senparc.Areas.Admin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]'.
      System.InvalidOperationException: There was an error reflecting type 'Senparc.Ncf.Core.AppServices.AppResponseBase`1[Senparc.Areas.Admin.Domain.Dto.SystemConfigDto]'.
       ---> System.InvalidOperationException: There was an error reflecting property 'Data'.
       ---> System.InvalidOperationException: Member AppResponseBaseOfSystemConfigDto.Data of type Senparc.Areas.Admin.Domain.Dto.SystemConfigDto hides base class member AppResponseBase.Data of type System.Object. Use XmlElementAttribute or XmlAttributeAttribute to specify a new name.
         at System.Xml.Serialization.StructMapping.FindDeclaringMapping(MemberMapping member, StructMapping& declaringMapping, String parent)
         at System.Xml.Serialization.XmlReflectionImporter.InitializeStructMembers(StructMapping mapping, StructModel model, Boolean openModel, String typeName, RecursionLimiter limiter)
         --- End of inner exception stack trace ---
         at System.Xml.Serialization.XmlReflectionImporter.InitializeStructMembers(StructMapping mapping, StructModel model, Boolean openModel, String typeName, RecursionLimiter limiter)
         at System.Xml.Serialization.XmlReflectionImporter.ImportStructLikeMapping(StructModel model, String ns, Boolean openModel, XmlAttributes a, RecursionLimiter limiter)
         at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel model, String ns, ImportContext context, String dataType, XmlAttributes a, Boolean repeats, Boolean openModel, RecursionLimiter limiter)
         --- End of inner exception stack trace ---
         at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel model, String ns, ImportContext context, String dataType, XmlAttributes a, Boolean repeats, Boolean openModel, RecursionLimiter limiter)
         at System.Xml.Serialization.XmlReflectionImporter.ImportElement(TypeModel model, XmlRootAttribute root, String defaultNamespace, RecursionLimiter limiter)
         at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(Type type, XmlRootAttribute root, String defaultNamespace)
         at System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace)
         at System.Xml.Serialization.XmlSerializer..ctor(Type type)
         at Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter.CreateSerializer(Type type)
         NcfUninstallException from TenantMiddleware
  • 数据库【postgres:15.1-alpine】,异常日志信息
2022-12-05 23:27:44 2022-12-05 15:27:44.214 UTC [338] ERROR:  relation "TenantInfos" does not exist at character 140
2022-12-05 23:27:44 2022-12-05 15:27:44.214 UTC [338] STATEMENT:  SELECT t."Id", t."AddTime", t."AdminRemark", t."Enable", t."Flag", t."Guid", t."LastUpdateTime", t."Name", t."Remark", t."TenantKey"
2022-12-05 23:27:44 FROM "TenantInfos" AS t
2022-12-05 23:27:44 WHERE NOT (t."Flag") AND t."Enable"
2022-12-05 23:29:17 2022-12-05 15:29:17.265 UTC [48] LOG:  checkpoint starting: time
2022-12-05 23:29:22 2022-12-05 15:29:22.365 UTC [48] LOG:  checkpoint complete: wrote 50 buffers (0.3%); 0 WAL file(s) added, 0 removed, 0 recycled; write=5.012 s, sync=0.038 s, total=5.100 s; sync files=38, longest=0.007 s, average=0.001 s; distance=197 kB, estimate=3151 kB

NCF-Developer-front-DDD-Dapr-20220218的XNCF创建模块问题

用XNCF创建模块“执行成功”提示未显示正常对话框,如下图,不知道其他人是不是也一样呢

XNCF创建模块提示

模块创建完成后,新模块中的ApiAppService.cs文件中有三个命名空间没有自动引用,引起编译失败,需要自己手动添加引用再编译

模块1
三个命名空间:
using Senparc.CO2NET.WebApi;
using MyNcf.Xncf.MyApp.OHS.Local.PL;
using Senparc.Ncf.Core.Exceptions;

手动添加引用后重新编译解决方案成功,但运行项目又出现如下图的问题,“清理解决方案”1次后再运行项目恢复正常运行

模块2

developer 分支update-database 报错

最新版developer分支,手动更新数据库,报如下错误:More than one DbContext was found. Specify which one to use. Use the '-Context' parameter for PowerShell commands and the '--context' parameter for dotnet commands.
我记得数据库连接字符串在Senparc.Web项目里啊

获取管理员列表接口报错

升级到8.0后,在请求管理员列表接口Senparc.Areas.Admin/AdminUserInfoAppService/Areas.Admin_AdminUserInfoAppService.GetList时报错:
image

query参数:
image

报错提示:
image

Xncf 模块管理和导航问题

  • Xncf 模块新增后,进入【模块管理】页面,点击【进入首页】,页面无法访问。

比如:Senparc.Xncf.Swagger 模块,页面操作如下:

1

2

  • Xncf 模块状态关闭时,页面中无法操作(符合预期),但实际的访问地址在浏览器中依然能访问。

3

源码在调试模式报错

我将源代码克隆到本地后,直接调试(按F5)运行。报如下错误:
QQ图片20210327183718

当我使用非调试模式(ctrl+f5)一切正常。

烦请指导,谢谢!

参考文档,运行 NCF ; 未能执行成功

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> Senparc.Ncf.Core.NcfUninstallException: TriedMatching 为 false,推测系统未进行安装
at Senparc.Ncf.Core.MultiTenant.MultiTenantHelper.TryGetAndCheckRequestTenantInfo(IServiceProvider serviceProvider, String referenceMethod, DbContext dbContext)
at Senparc.Ncf.Core.Models.SenparcEntitiesDbContextBase.SetGlobalQuery[T](ModelBuilder builder)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Senparc.Ncf.Core.Models.SenparcEntitiesDbContextBase.OnModelCreating(ModelBuilder modelBuilder)
at Senparc.Ncf.Core.Models.SenparcEntitiesBase.OnModelCreating(ModelBuilder modelBuilder)
at Senparc.Core.Models.SenparcEntities.OnModelCreating(ModelBuilder modelBuilder) in E:\05_Senparc\NCF\src\Senparc.Core\Models\SenparcEntities.cs:line 58
at Microsoft.EntityFrameworkCore.Infrastructure.ModelCustomizer.Customize(ModelBuilder modelBuilder, DbContext context)
at Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.CreateModel(DbContext context, IConventionSetBuilder conventionSetBuilder, ModelDependencies modelDependencies)
at Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.GetModel(DbContext context, IConventionSetBuilder conventionSetBuilder, ModelDependencies modelDependencies)
at Microsoft.EntityFrameworkCore.Internal.DbContextServices.CreateModel()
at Microsoft.EntityFrameworkCore.Internal.DbContextServices.get_Model()

DB NCF 创建成功, 表没有创建
image

sqlite启动时创建数据库失败

[07] 2022-02-08 11:13:08.0563 added Api path: /api/WeChat_OfficialAccount/MediaApi/UploadForeverVideoAsync
[07] 2022-02-08 11:13:08.0566 Api Task Count:16
[07] 2022-02-08 11:13:08.0623 create type: - WeChat_OfficialAccountController
[07] 2022-02-08 11:13:08.0624 ==== Finish BuildWebApi for WeChat_OfficialAccount / Total Time: 679 ms ====
[07] 2022-02-08 11:13:08.0626
[01] 2022-02-08 11:13:08.0653
[01] 2022-02-08 11:13:08.0653 Category Name | API Count| Cost Time | Average
[01] 2022-02-08 11:13:08.0655 --------------------------------------------------------------------------------
[01] 2022-02-08 11:13:08.0663 WeChat_MiniProgram | 146| 415.157ms | 2.844ms
[01] 2022-02-08 11:13:08.0664 WeChat_Open | 164| 414.4167ms | 2.527ms
[01] 2022-02-08 11:13:08.0665 WeChat_Work | 320| 553.8318ms | 1.731ms
[01] 2022-02-08 11:13:08.0669 Senparc.Xncf.DatabaseToolkit | 1| 105.9367ms | 105.937ms
[01] 2022-02-08 11:13:08.0685 WeChat_OfficialAccount | 776| 681.1814ms | 0.878ms
[01] 2022-02-08 11:13:08.0688 ================================================================================
[01] 2022-02-08 11:13:08.0715 Total | API Count:1407| Cost:807.6594ms |
[01] 2022-02-08 11:13:08.0716 Total Average Cost: 0.574 ms Task Count: 16
[01] 2022-02-08 11:13:08.0719
SenparcEntities 动态加载:Register | DbContextType:SystemServiceEntities_Sqlite
SenparcEntities 动态加载:Register | DbContextType:DatabaseToolkitEntities_Sqlite
SenparcEntities 动态加载:Register | DbContextType:XncfBuilderEntities_Sqlite
SenparcEntities 动态加载:Register | DbContextType:WeixinSenparcEntities_Sqlite
SenparcEntitiesDbContextBase OnModelCreating:SystemServiceEntities_Sqlite
entity type: Senparc.Core.Models.AdminUserInfo
Hosting environment: Development
Content root path: C:\Users\Administrator\Desktop\NCF-Developer\src\Senparc.Web
Now listening on: https://localhost:5001
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
SenparcEntitiesDbContextBase OnModelCreating:SenparcEntitiesMultiTenant
entity type: Senparc.Ncf.Core.Models.DataBaseModel.TenantInfo
NcfUninstallException from TenantMiddleware
SenparcEntities 动态加载:Register | DbContextType:SystemServiceEntities_Sqlite
SenparcEntities 动态加载:Register | DbContextType:DatabaseToolkitEntities_Sqlite
SenparcEntities 动态加载:Register | DbContextType:XncfBuilderEntities_Sqlite
SenparcEntities 动态加载:Register | DbContextType:WeixinSenparcEntities_Sqlite
SenparcEntitiesDbContextBase OnModelCreating:SystemServiceEntities_Sqlite
entity type: Senparc.Core.Models.AdminUserInfo
NcfUninstallException from TenantMiddleware
进入安装程序,检测是否需要初始化
SenparcEntities 动态加载:Register | DbContextType:SystemServiceEntities_Sqlite
SenparcEntities 动态加载:Register | DbContextType:DatabaseToolkitEntities_Sqlite
SenparcEntities 动态加载:Register | DbContextType:XncfBuilderEntities_Sqlite
SenparcEntities 动态加载:Register | DbContextType:WeixinSenparcEntities_Sqlite
SenparcEntitiesDbContextBase OnModelCreating:SystemServiceEntities_Sqlite
entity type: Senparc.Core.Models.AdminUserInfo
SenparcEntities 动态加载:Register | DbContextType:SystemServiceEntities_Sqlite
SenparcEntities 动态加载:Register | DbContextType:DatabaseToolkitEntities_Sqlite
SenparcEntities 动态加载:Register | DbContextType:XncfBuilderEntities_Sqlite
SenparcEntities 动态加载:Register | DbContextType:WeixinSenparcEntities_Sqlite
SenparcEntitiesDbContextBase OnModelCreating:SystemServiceEntities_Sqlite
entity type: Senparc.Core.Models.AdminUserInfo
entity type: Senparc.Core.Models.FeedBack
entity type: Senparc.Ncf.Core.Models.Account
entity type: Senparc.Ncf.Core.Models.AccountPayLog
entity type: Senparc.Ncf.Core.Models.DataBaseModel.SysButton
entity type: Senparc.Ncf.Core.Models.DataBaseModel.SysMenu
entity type: Senparc.Ncf.Core.Models.DataBaseModel.SysPermission
entity type: Senparc.Ncf.Core.Models.DataBaseModel.SysRole
entity type: Senparc.Ncf.Core.Models.DataBaseModel.SysRoleAdminUserInfo
entity type: Senparc.Ncf.Core.Models.DataBaseModel.TenantInfo
entity type: Senparc.Ncf.Core.Models.DataBaseModel.XncfModule
entity type: Senparc.Ncf.Core.Models.PointsLog
entity type: Senparc.Ncf.Core.Models.SystemConfig
entity type: Senparc.Xncf.DatabaseToolkit.DbConfig
entity type: Senparc.Xncf.WeixinManager.Models.MpAccount
entity type: Senparc.Xncf.WeixinManager.Models.UserTag
entity type: Senparc.Xncf.WeixinManager.Models.UserTag_WeixinUser
entity type: Senparc.Xncf.WeixinManager.Models.WeixinUser
entity type: Senparc.Xncf.XncfBuilder.Config
SQLite Error 1: 'no such table: TenantInfos'.
fail: Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1]
An unhandled exception has occurred while executing the request.
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 1: 'no such table: TenantInfos'.
at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
at Microsoft.Data.Sqlite.SqliteCommand.PrepareAndEnumerateStatements(Stopwatch timer)+MoveNext()
at Microsoft.Data.Sqlite.SqliteCommand.GetStatements(Stopwatch timer)+MoveNext()
at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable1.AsyncEnumerator.InitializeReaderAsync(DbContext _, Boolean result, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable1.AsyncEnumerator.MoveNextAsync()
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync[TSource](IAsyncEnumerable1 asyncEnumerable, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync[TSource](IAsyncEnumerable1 asyncEnumerable, CancellationToken cancellationToken)
at Senparc.Ncf.Repository.RepositoryBase1.GetFirstOrDefaultObjectAsync(Expression1 where, String[] includes)
at Senparc.Ncf.Service.ServiceBase1.GetObjectAsync(Expression1 where, String[] includes)
at Senparc.Ncf.Service.TenantInfoService.CreateOrUpdateTenantInfoAsync(CreateOrUpdate_TenantInfoDto createOrUpdate_TenantInfoDto, Boolean throwIfExisted)
at Senparc.Ncf.Service.TenantInfoService.CreateInitTenantInfoAsync(HttpContext httpContext)
at Senparc.Web.Pages.Install.IndexModel.OnGetAsync() in C:\Users\Administrator\Desktop\NCF-Developer\src\Senparc.Web\Pages\Install\Index.cshtml.cs:line 118
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory.GenericTaskHandlerMethod.Convert[T](Object taskAsObject)
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory.GenericTaskHandlerMethod.Execute(Object receiver, Object[] arguments)
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeHandlerMethodAsync()
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeNextPageFilterAsync()
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Rethrow(PageHandlerExecutedContext context)
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeInnerFilterAsync()
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Senparc.Ncf.Service.MultiTenant.TenantMiddleware.InvokeAsync(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

安装过后重新拉取代码 启动报错

拉取代码后 启动时 OnModelCreating()中的base.OnModelCreating(modelBuilder);(58行)报错:
"内部异常 NcfUninstallException: TriedMatching 为false,推测系统未进行安装"。
经删除数据库后 重启启动可以正常启动。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.