南部县网站建设,网站首页几天做完,wordpress怎么建站,网站建设实训报告建议点击上方蓝字小黑在哪里关注我吧模块运行动态 C# API 客户端前言很久没更新这个系列。。。之前的章节中讲到ABP的模块是可以独立运行的#xff0c;但是没有介绍具体怎么操作#xff0c;本篇就来讨论一下模块如何独立运行#xff0c;以及一些托管方式。本人也是处… 点击上方蓝字小黑在哪里关注我吧模块运行动态 C# API 客户端前言很久没更新这个系列。。。之前的章节中讲到ABP的模块是可以独立运行的但是没有介绍具体怎么操作本篇就来讨论一下模块如何独立运行以及一些托管方式。本人也是处于摸索阶段如有不对欢迎指出。开始模块运行首先需要生成模块的数据库修改HttpApi.Host和IdentityServer项目的appsettings.json数据库连接字符串配置。\modules\file-management\host\Xhznl.FileManagement.HttpApi.Host\appsettings.json\modules\file-management\host\Xhznl.FileManagement.IdentityServer\appsettings.json这样会生成2个数据库如果你只需要一个数据库的话就把FileManagement的那行配置去掉就好了。打开程序包管理器控制台默认项目选择IdentityServer执行update-database执行完成会生成Main数据库其中是一些ABP的基础表。继续将默认项目设置为HttpApi.Host执行add-migration Initial update-database执行完成会生成Module数据库其中是你模块的相关表。此时这两个项目就可以正常运行了。项目中可能有多个模块相互协作如果将各个模块独立运行的话不可能每个模块都创建一个Main数据库所以部分ABP的通用模块的数据库表就用同一个就好了。\modules\file-management\host\Xhznl.FileManagement.HttpApi.Host\appsettings.json\modules\file-management\host\Xhznl.FileManagement.IdentityServer\appsettings.json动态 C# API 客户端当有多个独立部署的模块时可能需要做一些网关之类的来统一入口模块之间的相互调用也比较麻烦本篇暂不讨论。下面介绍一下如何使用ABP的动态C# API客户端来调用远程模块。ABP可以自动创建C# API 客户端代理来调用远程HTTP服务(REST APIS).通过这种方式,你不需要通过 HttpClient 或者其他低级的HTTP功能调用远程服务并获取数据.前面的章节中在主项目中将模块的Application层和Domain层的大部分项目都引用了一遍那种方式是单体部署的情况模块和主项目托管在同一个进程里。下面使用C# API客户端来代理远程模块。首先删除项目中模块的引用和DependsOn然后在你需要调用模块的项目中添加模块的HttpApi.Client项目的依赖即可。比如我这里的Xhznl.HelloAbp.HttpApi.Host项目然后DependsOn然后在appsettings.json中添加远程服务的地址配置其中的FileManagement这个名称是来自模块的HttpApi.Client项目中的定义接下来就可以像使用本地方法一样去使用远程服务了因为HttpApi.Client是依赖于Application.Contracts项目的所以你模块的所有服务接口都可以在这里使用直接注入即可前提是你的服务需要实现IRemoteServiceABP会自动帮你完成Http的远程调用。随便找个地方测试一下接下来是模块项目最好配合ABP的自动API控制器一起使用如果你是自定义路由的话可能会出现一些Could not found remote action的奇怪错误。Auth服务地址也注意一下下面给两个项目打上断点测试一下流程是否正确可以看到请求已经正常流转到模块项目中。上面有些乱总结一下重点添加HttpApi.Client引用添加RemoteServices地址配置注入服务接口进行使用如果想托管模块的所有API那么只需要再添加模块的HttpApi依赖即可。托管方式非常灵活具体可以参考模块化架构最佳实践 约定[1]最后本篇就到这里。。。。。。参考资料[1]模块化架构最佳实践 约定: https://docs.abp.io/zh-Hans/abp/latest/Best-Practices/Module-Architecture如果本文对您有用不妨点个“在看”或者转发朋友圈支持一下