Abp 动态WebApi 大神赐教

雨雪飘零 2020-11-04 10:11:14
(一)SDK版本
1. MicroSoft .NET Core SDK 2.2.100(X64)
2. MicroSoft .NET Core SDK 3.1.403(X64) from Visual Studio
3. MicroSoft .NET Framework 4.8

(二)开发工具
Visual Studio 2019

(三)项目背景
对现有系统的进行前后分离改造。
现有系统使用了Abp 框架, 目标是将传统的Web项目,改造成为前后分离项目。

(四)技术方向
计划使用Abp 的动态WebApi
官方文档: https://www.52abp.com/Wiki/abp-cn/latest/5.2ABP%E5%88%86%E5%B8%83%E5%BC%8F%E6%9C%8D%E5%8A%A1-%E5%8A%A8%E6%80%81WebApi%E5%B1%82

按照官方文档,方法也很简单,在Model里添加如下代码即可,可是最终没有成功。


public class AbpProjectNameWebApiModule : AbpModule
{
public override void Initialize()
{
IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());

Configuration.Modules.AbpWebApi().DynamicApiControllerBuilder
.ForAll<IApplicationService>(typeof(AbpProjectNameApplicationModule).Assembly, "app")
.Build();
}
}


(五)问题描述
Apb 框架的动态WebApi, 遇到以下问题
1. 首先是NuGet 安装Apb.Web.Api Package, 安装完了,启动服务,出错,基本都是不能加载某个组件,如下:

System.IO.FileNotFoundException
HResult=0x80070002
Message=Could not load file or assembly 'Abp.Web, Version=4.3.0.0, Culture=neutral, PublicKeyToken=null'. 系统找不到指定的文件。
Source=System.Private.CoreLib
StackTrace:
at System.Reflection.CustomAttribute._CreateCaObject(RuntimeModule pModule, IRuntimeMethodInfo pCtor, Byte** ppBlob, Byte* pEndBlob, Int32* pcNamedArgs)
at System.Reflection.CustomAttribute.CreateCaObject(RuntimeModule module, IRuntimeMethodInfo ctor, IntPtr& blob, IntPtr blobEnd, Int32& namedArgs)
at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes)
at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeType type, RuntimeType caType, Boolean inherit)
at Abp.Modules.AbpModule.FindDependedModuleTypes(Type moduleType)
at Abp.Modules.AbpModule.AddModuleAndDependenciesRecursively(List`1 modules, Type module)
at Abp.Modules.AbpModule.AddModuleAndDependenciesRecursively(List`1 modules, Type module)
at Abp.Modules.AbpModule.AddModuleAndDependenciesRecursively(List`1 modules, Type module)
at Abp.Modules.AbpModule.AddModuleAndDependenciesRecursively(List`1 modules, Type module)
at Abp.Modules.AbpModule.FindDependedModuleTypesRecursivelyIncludingGivenModule(Type moduleType)
at Abp.Modules.AbpModuleManager.FindAllModuleTypes(List`1& plugInModuleTypes)
at Abp.Modules.AbpModuleManager.LoadAllModules()
at Abp.AbpBootstrapper.Initialize()


2. 继续安装Abp.Web,还是缺少其他Package, 缺啥补啥, 一共安装了 4 个, 如下


3. 最后出了这么个问题,调查不动了,网上没有任何资料, 大神赐教

System.TypeLoadException
HResult=0x80131522
Message=Could not load type 'System.Web.HttpPostedFileBase' from assembly 'System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
Source=Abp.Web
StackTrace:
at Abp.Web.AbpWebModule.AddIgnoredTypes()
at System.Collections.Generic.List`1.ForEach(Action`1 action)
at Abp.Modules.AbpModuleManager.StartModules()
at Abp.AbpBootstrapper.Initialize()
at Abp.AspNetCore.AbpApplicationBuilderExtensions.InitializeAbp(IApplicationBuilder app)
at Abp.AspNetCore.AbpApplicationBuilderExtensions.UseAbp(IApplicationBuilder app, Action`1 optionsAction)


(六)其他
各位大神赐教。
或者针对项目情况,有其他方案也请指点一下,不胜感激。
...全文
6242 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 2020-11-04
  • 打赏
  • 举报
回复
我记得,webapi直接在application中添加就可以了。 主要记得继承IApplicationService接口。 https://blog.csdn.net/hanjun0612/article/details/108765581

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧