【问题标题】:Could not load file or assembly HttpException (0x80004005) [duplicate]无法加载文件或程序集 HttpException (0x80004005) [重复]
【发布时间】:2012-09-22 10:11:12
【问题描述】:

可能重复:
Troubleshooting BadImageFormatException

我正在尝试编译我的解决方案,但收到有关 dll 的错误消息。我在另一个解决方案的 bin 文件夹中复制了那个 dll,但它没有编译它(第二个解决方案与那个 dll 无关,它不使用它)

我收到的错误是以下错误:

Server Error in '/browsertest1' Application.

Could not load file or assembly 'KT.AF.Engine.Core' or one of its dependencies. An attempt was made to load a program with an incorrect format.

描述:An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

异常详情:System.BadImageFormatException: Could not load file or assembly 'KT.AF.Engine.Core' or one of its dependencies. An attempt was made to load a program with an incorrect format.

来源错误:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Assembly Load Trace: The following information can be helpful to determine why the assembly 'KT.AF.Engine.Core' could not be loaded.


WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

堆栈跟踪:

[BadImageFormatException: Could not load file or assembly 'KT.AF.Engine.Core' or one of its dependencies. An attempt was made to load a program with an incorrect format.]
   System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0
   System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks) +567
   System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +192
   System.Reflection.Assembly.Load(String assemblyString) +35
   System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +118

[ConfigurationErrorsException: Could not load file or assembly 'KT.AF.Engine.Core' or one of its dependencies. An attempt was made to load a program with an incorrect format.]
   System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +11392147
   System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +484
   System.Web.Configuration.AssemblyInfo.get_AssemblyInternal() +127
   System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +334
   System.Web.Compilation.BuildManager.CallPreStartInitMethods() +280
   System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +1087

[HttpException (0x80004005): Could not load file or assembly 'KT.AF.Engine.Core' or one of its dependencies. An attempt was made to load a program with an incorrect format.]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +11524352
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +141
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +4782309

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1

【问题讨论】:

  • 您是否在任何地方编译为 x64/x86?你在用 com 吗?
  • HttpException 跟它有什么关系?
  • KT.AF.Engine.Core.dll 是用托管代码编写的吗?
  • 您是否阅读了MSDN Article on your error code 所有当前的建议都在备注部分提及。
  • KT.AF.Engine.Core.dll 是用托管代码编写的。我正在编译为 x86。

标签: c# dll


【解决方案1】:

看起来 DLL 文件已针对不同于您的解决方案构建的系统架构进行编译。

确保两件事:

您的项目设置为构建为“任何 CPU” - 这可以在 Visual Studio 的项目属性中找到。

IIS 已设置为允许在您的应用程序池中使用 32 位应用程序。

【讨论】:

  • DLL 文件已在 x86 下使用 Visual Studio 2010 sp1 编译。我用的是visual studio 2010,但是升级到sp1还是不行。
猜你喜欢
  • 2011-07-10
  • 2017-12-31
  • 2012-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-17
相关资源
最近更新 更多