(一)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)
(六)其他
各位大神賜教。
或者針對專案情況,有其他方案也請指點一下,不勝感激。
uj5u.com熱心網友回復:
我記得,webapi直接在application中添加就可以了。主要記得繼承IApplicationService介面。
https://blog.csdn.net/hanjun0612/article/details/108765581
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/203028.html
