我正在使用Windows Server 2008 R2 Datacenter 64位操作系统。我正在使用Visual Studio 2013,它有一个包含2个项目的解决方案,我遇到了这个错误。
异常详细信息:System.BadImageFormatException:无法加载文件 或组装EyeCantSeeEngine'或其中一个依赖项。一次尝试 是为了加载格式不正确的程序。
来源错误:
执行期间生成了未处理的异常 当前的网络请求。有关的来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。
装配加载跟踪:以下信息可能对您有所帮助 确定装配的原因EyeCantSeeEngine'无法加载。
===预绑定状态信息===日志:DisplayName = EyeCantSeeEngine(部分)警告:提供了部分绑定信息 程序集:WRN:程序集名称:EyeCantSeeEngine |域ID:2 WRN:A 仅部分程序集显示名称为时发生部分绑定 提供。警告:这可能导致活页夹加载不正确 部件。警告:建议提供完全指定的文本 程序集的身份,WRN:由简单名称组成, 版本,文化和公钥令牌。警告:见白皮书 http://go.microsoft.com/fwlink/?LinkId=109270了解更多信息和 这个问题的常见解决方案。日志:Appbase = 文件:/// C:/用户/管理员/文档/ ISFC_Main / EyeCantSee / EyeCantSeeEngine / 日志:初始PrivatePath = C:\用户\管理员\文件\ ISFC_Main \ EyeCantSee \ EyeCantSeeEngine \ BIN
调用程序集:(未知)。
日志:此绑定在默认加载上下文中启动。日志:使用应用程序 配置文件: C:\用户\管理\文档\ ISFC_Main \ EyeCantSee \ EyeCantSeeEngine \的web.config 日志:使用主机配置文件: C:\ Users \ uni \ Documents \ IISExpress \ config \ aspnet.config日志:使用 来自的机器配置文件 C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ CONFIG \ machine.config中。 日志:此时政策未适用于参考(私人, 自定义,部分或基于位置的程序集绑定)。日志:正在尝试 下载新的URL file:/// C:/ Users / uni / AppData / Local / Temp / 1 / Temporary ASP.NET 文件/根/ b917a818 / 774df716 / EyeCantSeeEngine.DLL。日志:正在尝试 下载新的URL file:/// C:/ Users / uni / AppData / Local / Temp / 1 / Temporary ASP.NET 文件/根/ b917a818 / 774df716 / EyeCantSeeEngine / EyeCantSeeEngine.DLL。 日志:尝试下载新网址 文件:/// C:/Users/Administrator/Documents/ISFC_Main/EyeCantSee/EyeCantSeeEngine/bin/EyeCantSeeEngine.DLL。 错误:无法完成程序集的设置(hr = 0x8007000b)。探测 终止。
堆栈追踪:
[BadImageFormatException:无法加载文件或程序集 ' EyeCantSeeEngine'或其中一个依赖项。试图做到 加载格式不正确的程序。]
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.nLoad(AssemblyName fileName,String codeBase,Evidence assemblySecurity,RuntimeAssembly locationHint, StackCrawlMark&安培; stackMark,IntPtr pPrivHostBinder,Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks)+34
System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(的AssemblyName assemblyRef,Evidence assemblySecurity,RuntimeAssembly reqAssembly, StackCrawlMark&安培; stackMark,IntPtr pPrivHostBinder,Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks)+152
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, 证据集合安全,StackCrawlMark& stackMark,IntPtr pPrivHostBinder,Boolean forIntrospection)+77
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, 证据集合安全,StackCrawlMark& stackMark,布尔 forIntrospection)+16 System.Reflection.Assembly.Load(String assemblyString)+28
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串 assemblyName,布尔starDirective)+38[ConfigurationErrorsException:无法加载文件或程序集 ' EyeCantSeeEngine'或其中一个依赖项。试图做到 加载格式不正确的程序。]
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串 assemblyName,布尔starDirective)+752
System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +218 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai)+130
System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig)+170
System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies() +91 System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath,Boolean& isRefAssemblyLoaded)+285
System.Web.Compilation.BuildManager.ExecutePreAppStart()+153
System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager,IApplicationHost appHost,IConfigMapPathFactory configMapPathFactory,HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel,Exception appDomainCreationException)+521[HttpException(0x80004005):无法加载文件或程序集 ' EyeCantSeeEngine'或其中一个依赖项。试图做到 加载格式不正确的程序。]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+9950728 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest) wr,HttpContext context)+254
我尝试将错误项目的目标平台从x64更改为x86,接下来遇到的错误就是这个。
异常详细信息:System.OutOfMemoryException:类型异常 '的System.OutOfMemoryException'被扔了。
来源错误:
执行期间生成了未处理的异常 当前的网络请求。有关的来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。
堆栈追踪:
[OutOfMemoryException:类型的异常' System.OutOfMemoryException' 被抛出。] 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.nLoad(AssemblyName fileName,String codeBase,Evidence assemblySecurity,RuntimeAssembly locationHint, StackCrawlMark&安培; stackMark,IntPtr pPrivHostBinder,Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks)+34
System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(的AssemblyName assemblyRef,Evidence assemblySecurity,RuntimeAssembly reqAssembly, StackCrawlMark&安培; stackMark,IntPtr pPrivHostBinder,Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks)+152
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, 证据集合安全,StackCrawlMark& stackMark,IntPtr pPrivHostBinder,Boolean forIntrospection)+77
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, 证据集合安全,StackCrawlMark& stackMark,布尔 forIntrospection)+16 System.Reflection.Assembly.Load(String assemblyString)+28
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串 assemblyName,布尔starDirective)+38[ConfigurationErrorsException:类型异常 '的System.OutOfMemoryException'被扔了。]
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串 assemblyName,布尔starDirective)+752
System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +218 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai)+130
System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig)+170
System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies() +91 System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath,Boolean& isRefAssemblyLoaded)+285
System.Web.Compilation.BuildManager.ExecutePreAppStart()+153
System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager,IApplicationHost appHost,IConfigMapPathFactory configMapPathFactory,HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel,Exception appDomainCreationException)+521[HttpException(0x80004005):类型异常 '的System.OutOfMemoryException'被扔了。]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+9950728 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest) wr,HttpContext context)+254
我还尝试将IIS应用程序池中的启用32位应用程序更改为True,但System.BadImageFormatException错误仍然存在。非常感谢任何解决此错误的建议。
答案 0 :(得分:0)
BadImageFormatException通常意味着架构混淆。例如,尝试使用x64 install util安装32位程序集。
同样在预绑定状态信息中,您可以阅读以下行:
警告:只有部分程序集显示名称时才会发生部分绑定 提供。 警告:这可能导致装订器装入错误的装配。
这可能表示您没有使用完全限定名称来加载程序集而只是加载类型。尝试指定要加载的程序集的完全限定名称。