微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决.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 举报,一经查实,本站将立刻删除。