应用程序无法在asp.net网络表单中加载程序集'System.Net.Http'

时间:2018-10-13 14:10:15

标签: c# asp.net .net

我正在使用.net Framework 4.7.2,并从nuget包中安装了System.Net.Http。我正在使用没有任何API包的简单asp.net表单应用程序。 应用程序构建没有任何问题,但是当我运行该应用程序时,出现以下错误。

无法加载文件或程序集'System.Net.Http'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)

这是完整的应用程序跟踪

  

“ /”应用程序中的服务器错误。无法加载文件或程序集   'System.Net.Http'或其依赖项之一。找到的程序集   清单定义与程序集引用不匹配。 (例外   来自HRESULT:0x80131040)说明:发生未处理的异常   在执行当前Web请求期间。请检查   堆栈跟踪以获取有关该错误及其位置的更多信息   源于代码。

     

异常详细信息:System.IO.FileLoadException:无法加载文件或   程序集“ System.Net.Http”或其依赖项之一。位于   程序集的清单定义与程序集引用不匹配。   (来自HRESULT的异常:0x80131040)

     

源错误:

     

在执行过程中生成了未处理的异常   当前的Web请求。有关原产地和位置的信息   可以使用下面的异常堆栈跟踪来识别异常。

     

装配体负载跟踪:以下信息可能对   确定为什么无法加载程序集“ System.Net.Http”。

     

===绑定前状态信息===日志:DisplayName = System.Net.Http(部分)WRN:为服务器提供了部分绑定信息   程序集:WRN:程序集名称:System.Net.Http |域ID:4 WRN:A   当部分装配显示名称为   提供。 WRN:这可能导致活页夹加载不正确   部件。 WRN:建议提供完整指定的文本   程序集的标识WRN:由简单名称组成,   版本,文化和公钥令牌。 WRN:请参阅白皮书   http://go.microsoft.com/fwlink/?LinkId=109270了解更多信息,以及   此问题的常见解决方案。日志:Appbase =   文件:/// G:/Projects/Sanganan/eClickShipNew/EasyPost.Web.UI/日志:   初始PrivatePath =   G:\ Projects \ Sanganan \ eClickShipNew \ EasyPost.Web.UI \ bin调用   程序集:(未知)。   === LOG:此绑定在默认加载上下文中启动。日志:使用应用程序配置文件:   G:\ Projects \ Sanganan \ eClickShipNew \ EasyPost.Web.UI \ web.config日志:   使用主机配置文件:   C:\ Users \ Dharmendra \ Documents \ IISExpress \ config \ aspnet.config日志:   使用机器配置文件从   C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ config \ machine.config。   日志:目前未将政策应用于引用(私有,   自定义,部分或基于位置的程序集绑定)。日志:尝试   下载新网址   文件:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary   ASP.NET文件/vs/67fd7ae1/97340337/System.Net.Http.DLL。日志:   尝试下载新的URL   文件:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary   ASP.NET   文件/vs/67fd7ae1/97340337/System.Net.Http/System.Net.Http.DLL。日志:   尝试下载新的URL   文件:/// G:/Projects/Sanganan/eClickShipNew/EasyPost.Web.UI/bin/System.Net.Http.DLL。   日志:使用应用程序配置文件:   G:\ Projects \ Sanganan \ eClickShipNew \ EasyPost.Web.UI \ web.config日志:   使用主机配置文件:   C:\ Users \ Dharmendra \ Documents \ IISExpress \ config \ aspnet.config日志:   使用机器配置文件从   C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ config \ machine.config。   日志:在应用程序配置文件中找到重定向:4.1.1.3   重定向到4.2.0.0。日志:政策后参考:System.Net.Http,   版本= 4.2.0.0,文化=中性,PublicKeyToken = b03f5f7f11d50a3a日志:   尝试下载新的URL   文件:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary   ASP.NET文件/vs/67fd7ae1/97340337/System.Net.Http.DLL。日志:   尝试下载新的URL   文件:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary   ASP.NET   文件/vs/67fd7ae1/97340337/System.Net.Http/System.Net.Http.DLL。日志:   尝试下载新的URL   文件:/// G:/Projects/Sanganan/eClickShipNew/EasyPost.Web.UI/bin/System.Net.Http.DLL。   WRN:比较程序集名称会导致不匹配:次要   版本ERR:无法完成装配的设置(hr = 0x80131040)。   探测终止。

     

堆栈跟踪:

     

[FileLoadException:无法加载文件或程序集'System.Net.Http'   或其依赖项之一。找到的程序集的清单定义   与程序集引用不匹配。 (来自HRESULT的异常:   0x80131040)]

     

[FileLoadException:无法加载文件或程序集'System.Net.Http,   版本= 4.2.0.0,文化=中性,PublicKeyToken = b03f5f7f11d50a3a'或   它的依赖项之一。找到的程序集的清单定义   与程序集引用不匹配。 (来自HRESULT的异常:   0x80131040)] System.Reflection.RuntimeAssembly._nLoad(AssemblyName   fileName,字符串codeBase,证据程序集安全性,RuntimeAssembly   locationHint,StackCrawlMark&stackMark,IntPtr pPrivHostBinder,   布尔值throwOnFileNotFound,布尔值用于自省,布尔值   hibitSecurityChecks)+0
  System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName,字符串   codeBase,证据程序集安全性,运行时程序集locationHint,   StackCrawlMark&stackMark,IntPtr,pPrivHostBinder,布尔值   throwOnFileNotFound,用于自检的布尔值,布尔值   hibitSecurityChecks)+36
  System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName   assemblyRef,证据assemblySecurity,RuntimeAssembly reqAssembly,   StackCrawlMark&stackMark,IntPtr,pPrivHostBinder,布尔值   throwOnFileNotFound,用于自检的布尔值,布尔值   hibitSecurityChecks)+152
  System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString,   证据集安全性,StackCrawlMark和stackMark,IntPtr   pPrivHostBinder,用于自省的布尔值)+77
  System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString,   证据汇编安全性,StackCrawlMark和stackMark,布尔值   forIntrospection)+21 System.Reflection.Assembly.Load(字符串   assemblyString)+28
  System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串   assemblyName,布尔型starDirective)+38

     

[ConfigurationErrorsException:无法加载文件或程序集   'System.Net.Http,版本= 4.2.0.0,文化=中性,   PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。的   找到的程序集的清单定义与程序集不匹配   参考。 (来自HRESULT的异常:0x80131040)]
  System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串   assemblyName,布尔型starDirective)+728
  System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory()   +196 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo   ai)+45
  System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection   compConfig)+172
  System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies()   +91 System.Web.Compilation.BuildManager.CallPreStartInitMethods(字符串   preStartInitListPath,布尔值和isRefAssemblyLoaded)+111
  System.Web.Compilation.BuildManager.ExecutePreAppStart()+156
  System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager   appManager,IApplicationHost,appHost,IConfigMapPathFactory   configMapPathFactory,HostingEnvironmentParametershostingParameters,   PolicyLevel policyLevel,异常appDomainCreationException)+695

     

[HttpException(0x80004005):无法加载文件或程序集   'System.Net.Http,版本= 4.2.0.0,文化=中性,   PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。的   找到的程序集的清单定义与程序集不匹配   参考。 (来自HRESULT的异常:0x80131040)]
  System.Web.HttpRuntime.FirstRequestInit(HttpContext上下文)+659
  System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext上下文)+89   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest   wr,HttpContext上下文)+188

     

版本信息:Microsoft .NET Framework版本:4.0.30319;   ASP.NET版本:4.7.3190.0

这是packages.config文件

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="AspNet.ScriptManager.jQuery" version="3.3.1" targetFramework="net471" />
  <package id="AspNet.ScriptManager.jQuery.UI.Combined" version="1.12.1" targetFramework="net471" />
  <package id="CommonServiceLocator" version="2.0.4" targetFramework="net471" />
  <package id="DotNetOpenAuth.AspNet" version="4.3.4.13329" targetFramework="net471" />
  <package id="DotNetOpenAuth.Core" version="4.3.4.13329" targetFramework="net471" />
  <package id="DotNetOpenAuth.OAuth.Consumer" version="4.3.4.13329" targetFramework="net471" />
  <package id="DotNetOpenAuth.OAuth.Core" version="4.3.4.13329" targetFramework="net471" />
  <package id="DotNetOpenAuth.OpenId.Core" version="4.3.4.13329" targetFramework="net471" />
  <package id="DotNetOpenAuth.OpenId.RelyingParty" version="4.3.4.13329" targetFramework="net471" />
  <package id="EasyPost-Official" version="2.5.1" targetFramework="net472" />
  <package id="EnterpriseLibrary.Common" version="6.0.1304.0" targetFramework="net471" />
  <package id="EnterpriseLibrary.Logging" version="6.0.1304.0" targetFramework="net471" />
  <package id="EntityFramework" version="6.2.0" targetFramework="net471" />
  <package id="iTextSharp" version="5.5.13" targetFramework="net471" />
  <package id="jQuery" version="3.3.1" targetFramework="net471" />
  <package id="jQuery.UI.Combined" version="1.12.1" targetFramework="net471" />
  <package id="Microsoft.AspNet.Membership.OpenAuth" version="2.0.1" targetFramework="net471" />
  <package id="Microsoft.AspNet.Providers.Core" version="2.0.0" targetFramework="net471" />
  <package id="Microsoft.AspNet.Providers.LocalDB" version="2.0.0" targetFramework="net471" />
  <package id="Microsoft.Bcl" version="1.1.10" targetFramework="net471" />
  <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="net471" />
  <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net471" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net40" />
  <package id="Modernizr" version="2.8.3" targetFramework="net471" />
  <package id="Newtonsoft.Json" version="11.0.2" targetFramework="net471" />
  <package id="RestSharp" version="106.5.2" targetFramework="net471" />
  <package id="System.Buffers" version="4.5.0" targetFramework="net472" />
  <package id="System.Configuration.ConfigurationManager" version="4.5.0" targetFramework="net471" />
  <package id="System.IO" version="4.3.0" targetFramework="net471" />
  <package id="System.Memory" version="4.5.1" targetFramework="net472" />
  <package id="System.Net.Http" version="4.3.4" targetFramework="net472" />
  <package id="System.Net.Http.Formatting.Extension" version="5.2.3.0" targetFramework="net472" />
  <package id="System.Net.Http.WinHttpHandler" version="4.5.1" targetFramework="net472" />
  <package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" />
  <package id="System.Reflection.Emit" version="4.3.0" targetFramework="net471" />
  <package id="System.Runtime" version="4.3.0" targetFramework="net471" />
  <package id="System.Runtime.CompilerServices.Unsafe" version="4.5.2" targetFramework="net472" />
  <package id="System.Security.AccessControl" version="4.5.0" targetFramework="net471" />
  <package id="System.Security.Cryptography.Algorithms" version="4.3.1" targetFramework="net471" />
  <package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net471" />
  <package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net471" />
  <package id="System.Security.Cryptography.X509Certificates" version="4.3.2" targetFramework="net471" />
  <package id="System.Security.Permissions" version="4.5.0" targetFramework="net471" />
  <package id="System.Security.Principal.Windows" version="4.5.1" targetFramework="net471" />
  <package id="Unity" version="5.8.11" targetFramework="net471" />
  <package id="Unity.Abstractions" version="3.3.1" targetFramework="net471" />
  <package id="Unity.Interception" version="5.5.5" targetFramework="net471" />
</packages>

2 个答案:

答案 0 :(得分:1)

如果目标是.NET Framework,则无需通过NuGet包引用System.Net.Http。相反,您应该引用框架的System.Net.Http,方法是右键单击“引用”->“添加引用...”,然后从“程序集”->“框架”列表中选择System.Net.Http。

答案 1 :(得分:0)

我有类似的问题。在我的情况下,对System.Net.Http的引用指向.dll文件夹中的.dll以外的其他packages。尝试检查引用是否确实指向.dll文件夹中的packages文件