我通过nuget将common.logging.log4net添加到我的visual studio 2012解决方案中。
common.logging.log4net ver。 - 2.0.1 common.logging ver。 - 2.0.0 log4net - ver。 1.2.10
当我在本地构建/运行它时,我通过浏览器看到以下异常:
无法加载文件或程序集' Common.Logging'或其中一个 依赖。定位程序集的清单定义没有 匹配程序集引用。 (HRESULT异常:0x80131040) 描述:执行期间发生未处理的异常 当前的网络请求。请查看堆栈跟踪了解更多信息 有关错误的信息以及它在代码中的起源。
异常详细信息:System.IO.FileLoadException:无法加载文件或 汇编' Common.Logging'或其中一个依赖项。位于 程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)
堆栈追踪:
[FileLoadException:无法加载文件或程序集' Common.Logging' 或其中一个依赖项。定位程序集的清单定义 与装配参考不匹配。 (HRESULT的例外情况: 0x80131040)]
[FileLoadException:无法加载文件或程序集' Common.Logging, Version = 2.1.1.0,Culture = neutral,PublicKeyToken = af08829b84f0328e'要么 其中一个依赖项。定位程序集的清单定义 与装配参考不匹配。 (HRESULT的例外情况: 0x80131040)] System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName,String codeBase,Evidence assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark& stackMark,IntPtr pPrivHostBinder, Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks)+0
System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(的AssemblyName assemblyRef,Evidence assemblySecurity,RuntimeAssembly reqAssembly, StackCrawlMark&安培; stackMark,IntPtr pPrivHostBinder,Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks)+210
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, 证据集合安全,StackCrawlMark& stackMark,IntPtr pPrivHostBinder,Boolean forIntrospection)+242
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, 证据集合安全,StackCrawlMark& stackMark,布尔 forIntrospection)+17 System.Reflection.Assembly.Load(String assemblyString)+35
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串 assemblyName,Boolean starDirective)+122
正在寻找Common.Logging Version = 2.1.1.0,它无法找到,因为它没有被加载。现在,当我调试应用程序时,我看到以下异常,这有点不同:
日志:此绑定在默认加载上下文中启动。
日志:使用应用程序配置文件: C:\工作区\ FTM \ APPS \ TM \ TM.Web \ web.config中
日志:使用主机配置文件: C:\的Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet.config
日志:使用来自的机器配置文件 C:\的Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ CONFIG \ machine.config中
。日志:此时政策未应用于参考(私人, 自定义,部分或基于位置的程序集绑定)。
日志:尝试下载新网址 文件:/// C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files / root / e97e0952 / 56ab271f / Common.Logging.DLL。
日志:尝试下载新网址 文件:/// C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET 文件/根/ e97e0952 / 56ab271f / Common.Logging / Common.Logging.DLL。
日志:尝试下载新网址 文件:/// C:/Workspaces/FTM/Apps/TM/TM.Web/bin/Common.Logging.DLL
日志:使用应用程序配置文件: C:\工作区\ FTM \ APPS \ TM \ TM.Web \ web.config中
日志:使用主机配置文件: C:\的Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet.config
日志:使用来自的机器配置文件 C:\的Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ CONFIG \ machine.config中
。日志:在应用程序配置文件中找到重定向:2.0.0.0 重定向到2.1.1.0。
日志:政策后参考:Common.Logging,版本= 2.1.1.0, Culture = neutral,PublicKeyToken = af08829b84f0328e
日志:尝试下载新网址 文件:/// C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files / root / e97e0952 / 56ab271f / Common.Logging.DLL。
日志:尝试下载新网址 文件:/// C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET 文件/根/ e97e0952 / 56ab271f / Common.Logging / Common.Logging.DLL。
日志:尝试下载新网址 文件:/// C:/Workspaces/FTM/Apps/TM/TM.Web/bin/Common.Logging.DLL。警告: 比较程序集名称导致不匹配:次要版本 错误:无法完成程序集的设置(hr = 0x80131040)。探测 终止。
堆栈追踪:
[FileLoadException:无法加载文件或程序集' Common.Logging' 或其中一个依赖项。定位程序集的清单定义 与装配参考不匹配。 (HRESULT的例外情况: 0x80131040)]
[FileLoadException:无法加载文件或程序集' Common.Logging, Version = 2.1.1.0,Culture = neutral,PublicKeyToken = af08829b84f0328e'要么 其中一个依赖项。定位程序集的清单定义 与装配参考不匹配。 (HRESULT的例外情况: 0x80131040)] System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName,String codeBase,Evidence assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark& stackMark,IntPtr pPrivHostBinder, Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks)+0
System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(的AssemblyName assemblyRef,Evidence assemblySecurity,RuntimeAssembly reqAssembly, StackCrawlMark&安培; stackMark,IntPtr pPrivHostBinder,Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks)+210
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, 证据集合安全,StackCrawlMark& stackMark,IntPtr pPrivHostBinder,Boolean forIntrospection)+242
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, 证据集合安全,StackCrawlMark& stackMark,布尔 forIntrospection)+17 System.Reflection.Assembly.Load(String assemblyString)+35
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串 assemblyName,Boolean starDirective)+122[ConfigurationErrorsException:无法加载文件或程序集 ' Common.Logging,Version = 2.1.1.0,Culture = neutral, 公钥= af08829b84f0328e'或其中一个依赖项。该 定位程序集的清单定义与程序集不匹配 参考。 (HRESULT异常:0x80131040)]
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串 assemblyName,布尔starDirective)+12761078
System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +503 System.Web.Configuration.AssemblyInfo.get_AssemblyInternal()+ 142 System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig)+334
System.Web.Compilation.BuildManager.CallPreStartInitMethods(字符串 preStartInitListPath)+203
System.Web.Compilation.BuildManager.ExecutePreAppStart()+152
System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager,IApplicationHost appHost,IConfigMapPathFactory configMapPathFactory,HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel,Exception appDomainCreationException)+1151[HttpException(0x80004005):无法加载文件或程序集 ' Common.Logging,Version = 2.1.1.0,Culture = neutral, 公钥= af08829b84f0328e'或其中一个依赖项。该 定位程序集的清单定义与程序集不匹配 参考。 (HRESULT异常:0x80131040)]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+12881540 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +159 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest) wr,HttpContext context)+12722601版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.17929
不确定为什么要尝试重定向到2.1.1.0(根据日志)
汤姆
答案 0 :(得分:3)
这一行我认为暗示了这个问题:
LOG: Redirect found in application configuration file: 2.0.0.0 redirected to 2.1.1.0.
检查应用程序配置文件(app.config)是否有任何组件重定向,告诉它在请求版本2.0.0.0的任何时候尝试加载版本2.1.1.0。