.Net核心Web API System.Reflection.ReflectionTypeLoadException从属项目具有框架dll System.Web.Services参考

问题描述

我有一个.net核心API版本3.1,该版本依赖于2个项目。

  1. Net Framework Target 4.7.2项目库。
  2. .Net标准库

使用框架dll的旧版.Net Framework 4.7项目-System.Web.Services和System.Configuration,分别调用基于Soap的asmx Web服务和从web.confg中读取配置。

我在AuthorizationFilter下通过添加包Microsoft.AspNetCore.Mvc.Abstractions创建的.Net标准库内部

/// <inheritdoc/>
public void OnAuthorization(AuthorizationFilterContext context)
{
    if (!AllPossibleLocalHostUrls.Any(x => x.Equals(context.HttpContext.Request.Host.Value,StringComparison.OrdinalIgnoreCase)))
    {
        context.Result = null;
    }
}

在应用程序启动期间添加软件包Microsoft.AspNetCore.Mvc.Abstractions后,出现以下错误

System.Reflection.ReflectionTypeLoadException:'无法加载一个或多个请求的类型。 无法加载文件或程序集'System.Web.Services,版本= 4.0.0.0,区域性=中性,PublicKeyToken = b03f5f7f11d50a3a'。该系统找不到指定的文件。 无法加载文件或程序集'System.Configuration.ConfigurationManager,版本= 4.0.3.0,区域性=中性,PublicKeyToken = cc7b13ffcd2ddd51'。找到的程序集的清单定义与程序集引用不匹配。 (0x80131040)'

Error Message

我能够通过在.Net标准库项目中添加nuget包System.Configuration.ConfigurationManager来解决第二个错误。但是对于System.Web.Services,找不到适用于.Net Core应用程序的任何nuget软件包。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)