dotnetcore / osharp

OSharp是一个基于.Net6.0的快速开发框架,框架对 AspNetCore 的配置、依赖注入、日志、缓存、实体框架、Mvc(WebApi)、身份认证、功能权限、数据权限等模块进行更高一级的自动化封装,并规范了一套业务实现的代码结构与操作流程,使 .Net 框架更易于应用到实际项目开发中。
Apache License 2.0
2.77k stars 748 forks source link

登录成功后事件发布报错 #236

Closed seamusic closed 2 years ago

seamusic commented 3 years ago

已添加了实体,但还没执行迁移,这个时候登录时是成功的。后续到事件发布里出错。 //触发登录成功事件 LoginEventData loginEventData = new LoginEventData() { LoginDto = dto, User = user }; await _eventBus.PublishAsync(loginEventData); FunctionAuthCacheRefreshEventData functionAuthCacheRefreshEventData = new FunctionAuthCacheRefreshEventData() { UserNames = new[] { user.UserName } }; await _eventBus.PublishAsync(functionAuthCacheRefreshEventData); //报错

image

seamusic commented 3 years ago

后续没有再发生了。原因不明。

seamusic commented 3 years ago

image 跟踪代码,发现到最后是无法访问数据库?

seamusic commented 3 years ago

在编辑功能时,同样也是有一个eventbus publish报错,如下: image

代码位置: image

seamusic commented 3 years ago

大概的原因是,使用了事务,数据库更新后,但未提交。这个时候又发起异步事件,导致事件同时查询的是相同的库,导致等待超期报错。

gmf520 commented 2 years ago

不知你用的哪个版本,在新版本中已修复